Conditional DataTemplate

前端 未结 1 718
没有蜡笔的小新
没有蜡笔的小新 2020-12-13 13:15

Here is what I am trying to do. I have 2 Data Templates defined which both refer to a different user control.


    

        
相关标签:
1条回答
  • 2020-12-13 14:07

    Don't set the ItemTemplate but use an ItemTemplateSelector.

    DataTriggers would be fine too of course, spares you the extra class for the selector. e.g.

    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <ContentControl Content="{Binding}">
                <ContentControl.Style>
                    <Style TargetType="ContentControl">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding ThatProperty}" Value="1">
                                <Setter Property="ContentTemplate"
                                        Value="{StaticResource myDataTemplate1}" />
                            </DataTrigger>
                            <DataTrigger Binding="{Binding ThatProperty}" Value="2">
                                <Setter Property="ContentTemplate"
                                        Value="{StaticResource myDataTemplate2}" />
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </ContentControl.Style>
            </ContentControl>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
    
    0 讨论(0)
提交回复
热议问题