作为标题,是否可能?
我在TreeView中看到,您可以使用DataType属性为不同的数据类型定义不同的HierarchicalDataTemplate,它甚至不需要DataTemplateSelector。
所以我想知道是否可以根据绑定值选择模板而不使用DataTemplateSelector?
在我的情况下,很简单,如果数据对象的Property = 1,则显示template1,2然后是template2。
没有DataTemplateSelector可以做到吗?
答案 0 :(得分:2)
是的,您可以使用DataTrigger
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Template" Value="{StaticResource DefaultTemplate}" />
<Style.Triggers>
<DataTrigger Binding="{Binding SomeProperty}" Value="2">
<Setter Property="Template" Value="{StaticResource Template2}" />
</DataTrigger>
</Style.Triggers>
</Style>
我实际上更喜欢DataTriggers
到DataTemplateSelector
因为它们会响应PropertyChange
通知,而我更愿意在我的UI代码中看到我的UI逻辑。