WPF: TemplateSelectors для разных GridView - PullRequest
1 голос
/ 04 января 2011

В настоящее время у меня есть UserControl, который отображает коллекции данных в том же макете. Таким образом, один элемент управления может быть создан с коллекцией ObjectA, а другой - ObjectB. Затем я использую TemplateSelectors, чтобы выбрать правильные шаблоны данных.

Позже мы подумали, что установим List в качестве GridView, чтобы отображать больше информации в самом списке. Однако каждый тип объекта имеет разные свойства, и столбцы могут иметь разные имена и не одинаковое количество. Тогда я понял, что столбцы и тому подобное, где они установлены не в ItemTemplate, а в самом GridView и ListView, разумеется, не имеют шаблона templateSelector для себя.

Я не был уверен, как это сделать, но на ум пришло несколько способов.

1) Есть какое-то свойство TemplateSelector, о котором я не знаю.

2) Я МОГУ установить его как-то на ItemTemplateSelector, только не знаю как.

3) Я мог бы динамически создавать GridView (это может быть сложно и не нужно избегать).

Какой-нибудь хороший способ сделать это, учебные пособия или аналогичные, которые я мог бы использовать?

EDIT:

Поскольку я узнал немного больше о ListView и его свойствах представления, я почти уверен, что смогу определить gridview в staticResource. Тем не менее, я бы хотел ViewSelector или что-то подобное. Я предполагаю, что это, конечно, не предназначалось, поскольку элемент мог быть динамическим, в то время как Коллекция не.

Но я думаю о случаях, когда может существовать больше типов представлений, чем gridview (iconview или что-то еще), и пользователь может переключаться между ними, это должно быть реализовано каким-то образом.

Решение, которое я знаю, состоит в том, чтобы использовать триггер и основывать его на первом элементе в коллекции, но мне это не очень нравится.

1 Ответ

0 голосов
/ 14 июля 2011

Вы смотрели на свойство AutoGeneratingColumns таблицы?

http://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.autogeneratingcolumn(v=vs.95).aspx

...