gpt4 book ai didi

wpf - 条件数据模板

转载 作者:行者123 更新时间:2023-12-03 09:06:39 25 4
gpt4 key购买 nike

这是我想要做的。我定义了2个数据模板,它们都引用不同的用户控件。

<UserControl.Resources>
<DataTemplate x:Key="myDataTemplate1">
<Border BorderBrush="Black" BorderThickness="1">
<myUserControl1 />
</Border>
</DataTemplate>
<DataTemplate x:Key="myDataTemplate2">
<Border BorderBrush="Black" BorderThickness="1">
<myUserControl2/>
</Border>
</DataTemplate>
</UserControl.Resources>

我正在使用这些数据模板使用ItemsControl这样显示项目列表:
<ItemsControl x:Name="myItemList" ItemTemplate="{StaticResource myDataTemplate1}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate />
</ItemsControl.ItemsPanel>
</ItemsControl>

我希望ItemTemplate有条件地为myDataTemplate1或myDataTemplate1,具体取决于分别为1或2的整数变量的值。

我应该为此使用DataTriggers还是有另一种方法呢?感谢帮助。

最佳答案

不要设置ItemTemplate,而要使用 ItemTemplateSelector
DataTriggers当然也可以,可以为选择器节省额外的类。例如

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

关于wpf - 条件数据模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9049197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com