WPF объединяет две коллекции в одну DataGrid - PullRequest
3 голосов
/ 21 января 2011

У меня есть две коллекции, которые я хочу отобразить вместе в одной таблице.Я намерен использовать горизонтальную DataGrid для этого, и я пытаюсь выяснить, как лучше всего представить коллекции в DataGrid.(горизонтальное решение DataGrid описано здесь: WPF горизонтальный DataGrid )

Немного бессмысленного примера со стульями и столами.В моем приложении у меня есть список таблиц и список стульев (и Table, и Chair имеют свойство Date и NumberOfItems):

public List<Table> TableList { get; set; }
public List<Table> ChairList { get; set; }

В xaml я хочу привязать DataBind к объединенному списку, чтобыполучит что-то вроде:

Date             | 01-Jan-2011 | 02-Jan-2011 | 03-Jan-2011 | 04-Jan-2011 
Number of tables |     5       |     6       |             |     7       
Number of chairs |     3       |             |     2       |       

TableList и ChairList не имеют одинаковое количество элементов.Каков наилучший подход для демонстрации объединяемой коллекции, которая может быть привязана?

Ответы [ 2 ]

7 голосов
/ 21 января 2011

Попробуйте класс CompositeCollection.Вот хороший пример здесь , включая показ того, как создать шаблон для нескольких типов элементов в составном списке.Еще одна приятная вещь: вы можете создать коллекцию в коде и предоставить ее для связывания, либо создать ее в Xaml из двух отдельно связанных коллекций.

1 голос
/ 25 января 2011

Я закончил тем, что привязал DataGrid к DataTable DataView.Я создал объект FurniturePerDate с нулевыми свойствами Table и Chair для каждой даты и использовал коллекцию FurniturePerDate для создания DataTable.Очень негибкий, но он работает для моего варианта использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...