我想创建一个包含一个组合框和一个内容控件的用户控件。在组合框中所做的选择应该决定内容控件将使用的数据模板。我读过this article,它很好地演示了我试图实现的目标。
组合框中填入enum ModelType
值,可以是Person
或Company
,如果用户选择Person
,则内容控件应使用personTemplate
数据模板;以及companyTemplate
对应于Company
。
我被内容控件的XAML代码卡住了。下面是我创建的代码,但我无法使其工作:
<UserControl.Resources>
...
<DataTemplate x:Key="personTemplate" ...>
<DataTemplate x:Key="companyTemplate" ...>
...
</UserControl.Resources>
...
<ContentControl x:Name="Account">
<ContentControl.ContentTemplate>
<DataTemplate>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding AccountType}" Value="Person">
<!-- I doubt the Value property is set correctly. -->
<!-- It should be a value of an enum ModelType -->
<Setter
TargetName="Account"
Property="ContentTemplate"
Value="{StaticResource personTemplate}" />
<!-- The setter is unaware of the target name, i.e. content control -->
</DataTrigger>
<DataTrigger Binding="{Binding AccountType}" Value="Company">
<Setter
TargetName="Account"
Property="ContentTemplate"
Value="{StaticResource companyTemplate}" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
帮帮忙,谢谢。
1条答案
按热度按时间stszievb1#
我真的让它工作了
下面是XAML应该的样子:
枚举的值也工作得很好。