Могу ли я использовать разные таблицы данных для одного и того же типа данных на основе некоторого creteria? - PullRequest
3 голосов
/ 12 февраля 2011

Я новичок в wpf и теперь у меня проблема. У меня есть класс модели, скажем Customer, и я создал DataTemplate со свойством TargetType, установленным на Customer. Работает хорошо. Но на самом деле мне нужны два разных шаблона, например, один для простого отображения записи, а другой для редактирования на месте. Можно ли указать два разных шаблона для одного и того же типа данных на основе некоторого creteria? И я хочу переключить этот шаблон на основе некоторого свойства ViewModel, например, когда IsEditmode равно True.

Или я делаю это неправильно? Стоит ли вместо этого использовать стили?

Ответы [ 2 ]

3 голосов
/ 12 февраля 2011

Ваш подход кажется вполне подходящим.

Вы можете создать DataTemplateSelector , который позволит вам выбрать шаблон данных на основе произвольных критериев из кода позади.

Я часто использую их, чтобы решить, какой шаблон использовать на основе свойства типа enum.

2 голосов
/ 12 февраля 2011

Я могу придумать два простых способа, конечно же, есть и другие способы, основанные на сложности и архитектуре, которым вы хотите следовать.StaticResource / DynamicResource Binding.

Внутри таблицы данных может быть DataTrigger, который делает некоторые части шаблона видимыми / свернутыми на основе вашего свойства EditMode
...