Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > как написать DataTemplate для разных типов


Автор: lankin 3.12.2011, 18:32
В чем суть вопроса: есть коллекция ObservableCollection<object> list. В ней могут быть следующие типы: string, int, bool.
Можно ли написать для листвью такой шаблон, который бы в зависимости от типа элемента рисовал бы либо textbox для string, либо numericupdown для int, либо checkbox для bool?
например коллекция содержит {"вася", 10, true} и листвью отобразит сначала textbox, затем numericupdown и в конце checkbox.
Можно ли этого добиться только с помощью xaml? например используюя конвертеры и вехавиоры?

Автор: Gvozdin 3.12.2011, 19:19
Код

<UserControl xmlns:sys="clr-namespace:System;assembly=mscorlib">

<DataTemplate DataType="{x:Type sys:String}">
...
</DataTemplate>


Аналогично для других типов.

А можно сделать свой DataTemplateSelector(класс унаследованный от DataTemplateSelector) и задать его в ListView.DataTemplateSelector.
Там уже выбирать любой шаблон для элемента.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)