#c_sharp #wpf #mvvm #datagrid
У меня есть коллекция объектов, каждый объект имеет в себе коллекцию других объектов. Возможно ли эту коллекцию вывести в DataGrid. Мой код: //ViewModel public class ObladnanViewModel { public ObservableCollectionCollection { get; set; } public ObservableCollection Electromotors { get; set; } public ObladnanViewModel() { Electromotors =new ObservableCollection () { new ElectromotoruModel(){Id= 1,Marka = "AO2",Name = "Main"}, new ElectromotoruModel(){Id=2,Marka = "4",Name = "Main"}, new ElectromotoruModel(){Id=3,Marka = "AO2",Name = "Main"} }; Collection=new ObservableCollection () { new ObladnanModel(1,"Obl1",Electromotors), new ObladnanModel(2,"Obl2",Electromotors) }; } } Класс ElectromotoruModel: public class ElectromotoruModel { public int Id { get; set; } public string Name { get; set; } public string Marka { get; set; } } public class ObladnanModel { public int Id { get; set; } public string Name { get; set; } public ObservableCollection Elektromotors { get; set; } public ObladnanModel(int id, string name, ObservableCollection electromotors) { this.Id = id; this.Name = name; this.Elektromotors = electromotors; } } И пробивал так XAML: Но в Motors выводит просто пустую строку. Возможно ли сделать так:
Ответы
Ответ 1
В английской литературе это называется RowDetails. Вполне логично - детали строки. так вот, вам нужен RowDetailsTemplate. Подозреваю, что в вашем случае, вы хотите в качестве подстроки использовать ещё одну таблицу с несколькими колонками.Ответ 2
Нашел решение. Правда не в DataGrid а в ListBox но и так пойдет) Моя ViewModel: public class ObladnanViewModel { public ObservableCollectionCollection { get; set; } public ObladnanViewModel() { Collection=new ObservableCollection () { new ObladnanModel(1,"Obl1",new ObservableCollection () { new ElectromotoruModel(){Id= 1,Marka = "AO2",Name = "Main"}, new ElectromotoruModel(){Id=2,Marka = "4",Name = "Main"}, new ElectromotoruModel(){Id=3,Marka = "AO2",Name = "Main"}}), new ObladnanModel(2,"Obl2",new ObservableCollection () { new ElectromotoruModel(){Id= 1,Marka = "36",Name = "Main"}, new ElectromotoruModel(){Id=6,Marka = "4",Name = "Vent"}, new ElectromotoruModel(){Id=3,Marka = "AO6",Name = "cooling"}, new ElectromotoruModel(){Id = 4,Marka = "C03",Name = "movement table"}} ) }; } } Код Xaml: Результат:
Комментариев нет:
Отправить комментарий