在PropertyChanged上更新DataTemplate不起作用

时间:2017-11-20 11:34:14

标签: c# wpf

我有一个简单的对象Action,它有一个属性Code。根据其代码,我想选择不同的DataTemplates,用户也可以通过ComboBox更改代码。

llo

所以我在看这个答案:https://stackoverflow.com/a/18000310/2877820

我尝试了这样的解决方案:

Wor

可悲的是,它似乎对我不起作用。有人可以帮帮我吗?我在这做错了什么?

1 个答案:

答案 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>