Есть датагрид к которому нужно биндить коллекцию из класса вью модели которая сама является составной из нескольких однотипных коллекций :
public ObservableCollection<ObservableCollection<Food>> FoodCollection{ get; set; }
Это коллекция еда которая содержит подколлекции мясо,рыба и т.д.
public ObservableCollection<Milc> MilckCollection { get; set; }
public ObservableCollection<Meet> MeetCollection { get; set; }
классы продуктов отнаследованы от общего Food
public class Food
{
public string Date { get; set; }
public string Prise { get; set; }
}
public class Meet: Food
{ }
public class Milk: Food
{ }
Cтолбцы привязаны к Date и Prise а ItemsSource к Food
<DataGrid x:Name="DGFoodtDetails" Margin="0,35" ItemsSource="{Binding Food}" AutoGenerateColumns="False" RowHeight="20">
<DataGrid.Columns>
<DataGridTextColumn Header="Type" MinWidth="300" Width="*" Binding="{Binding Prise}"/>
<DataGridTextColumn Header="Date" MinWidth="100" Binding="{Binding Date}"/>
</DataGrid.Columns>
</DataGrid>
В конструкторе класса вью модели заполняю коллекции мяса и молока примерно :
for (int i = 0; i < set.Tables["Milc"].Rows.Count; i++)
{
MilkCollection.Add(new Milc()
{
Type = set.Tables["Milc"].Rows[i][2].ToString(),
Date = set.Tables["Milc"].Rows[i][1].ToString(),
CountPaper = set.Tables["Milc"].Rows[i][3].ToString()
});
}
и добавляю подколлекции в основную :
Food = new ObservableCollection<ObservableCollection<Food>>();
Food.Add(new ObservableCollection<Invest>(MilkCollection));
Food.Add(new ObservableCollection<Invest>(MeetCollection));
В результате всего выше описанного : в главной коллекции находятся 2 подколекции, в каждой из которых по несколько обьектов,чьи свойства заполняют грид. НО на гриде отображается только ПО ОДНОМУ обьекту из каждой подколлекции. Если я поменяю ItemsSource датагрида с Food на Milk то все отобразиться корректно. Вопрос : как это исправить и правильно ли вообще использовать для таких целей столь громоздкую конструкцию. Спасибо всем кто дочитал )
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники