Условные шаблоны данных в WPF - PullRequest
6 голосов
/ 21 октября 2009

Как можно выбрать другую табличку с данными, соответствующую полю в источнике привязки данных? Я хотел бы иметь 2 разных шаблона данных

<DataTemplate x:Key="DataTemplateLabel">
    <Label Width="60" Height="25" Background="Red">
    <TextBlock Text="{Binding Path=Name}"/>
    </Label>
</DataTemplate>



<DataTemplate x:Key="DataTemplateTxtBox">
    <TextBox Width="60" Height="25" Background="Red" Text="{Binding Path=Text}"/>
</DataTemplate>

if (isText) Тогда использовать DataTemplateTxtBox Иначе использовать DataTemplateLabel) Возможно ли это? Спасибо.

Ответы [ 2 ]

7 голосов
/ 21 октября 2009

Вы можете создать DataTemplateSelector и присвоить его свойству ContentTemplateSelector (или ItemTemplateSelector, если оно находится в ItemsControl)

0 голосов
/ 21 октября 2009

Это скорее косвенный ответ, но, выполняя полиморфизм (т.е. оставляя свойство IsText и отвечая на вопрос, используя другой тип), вы можете определить DataTemplate для каждого другого типа.

...