我有一个简单的对象Action,它有一个属性Code。根据其代码,我想选择不同的DataTemplates,用户也可以通过ComboBox更改代码。
llo
所以我在看这个答案:https://stackoverflow.com/a/18000310/2877820
我尝试了这样的解决方案:
Wor
可悲的是,它似乎对我不起作用。有人可以帮帮我吗?我在这做错了什么?
答案 0 :(得分:1)
DataTemplateSelector
没有回应房产更改通知。作为解决方法,您可以在ContentControl
中使用DataTriggers
ItemTemplate
,例如:
<ComboBox ...>
<ComboBox.ItemTemplate>
<DataTemplate>
<ContentControl Content="{Binding}">
<ContentControl.Style>
<Style TargetType="{x:Type ContentControl}">
<Setter Property="ContentTemplate" Value="{StaticResource NoParamTemplate}" />
<Style.Triggers>
<DataTrigger Binding="{Binding Code}" Value="1">
<Setter Property="ContentTemplate" Value="{StaticResource OneParamTemplate}" />
</DataTrigger>
<DataTrigger Binding="{Binding Code}" Value="2">
<Setter Property="ContentTemplate" Value="{StaticResource TwoParamTemplate}" />
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>