Привязка DataGrid к коллекции коллекций

263
01 июня 2017, 06:01

Есть датагрид к которому нужно биндить коллекцию из класса вью модели которая сама является составной из нескольких однотипных коллекций :

    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 то все отобразиться корректно. Вопрос : как это исправить и правильно ли вообще использовать для таких целей столь громоздкую конструкцию. Спасибо всем кто дочитал )

READ ALSO
Не выполняется подготовленный запрос

Не выполняется подготовленный запрос

Почему нельзя выполнить команду

267
Uncaught Error: Call to undefined function mysql_real_escape_string()

Uncaught Error: Call to undefined function mysql_real_escape_string()

Ошибка - Uncaught Error: Call to undefined function mysql_real_escape_string()

473
Правильно-ли я понял концепцию MVC?

Правильно-ли я понял концепцию MVC?

Хотел уточнить своё понимание концепцииЯ понял что работать всё должно примерно так:

350
Не работает require_once на сервере

Не работает require_once на сервере

ПриветСтранное поведение на сервере

471