如何在windows.resources中指定多个DataTemplate以供ContentControl使用? 我的代码:
<Window.Resources>
<DataTemplate x:Key="CustomerTemplate" DataType="{x:Type local:Customer}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding FirstName}"/>
<TextBlock Text=" ("/>
<TextBlock Text="{Binding Occupation}"/>
<TextBlock Text=")"/>
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="PersonTemplate" DataType="{x:Type local:Person}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding FirstName}"/>
<TextBlock Text=" - "/>
<TextBlock Text="{Binding LastName}"/>
</StackPanel>
</DataTemplate>
</Window.Resources>
非常感谢你!
答案 0 :(得分:1)
使用DataTemplateSelector返回您想要应用的Datatemplate ..
<ContentControl ContentTemplateSelector="{StaticResource MyTemplateSelector}"/>
这里MYtemplateselector是DataTemplateSelector
,在select的select()方法中你可以检查绑定到contentcontrol的属性并返回相应的Datatemplate。
由于
答案 1 :(得分:0)
从x:Key
移除DataTemplate
并尝试此操作:
<ContentControl Name="CustomerContentControl">
<local:Customer />
</ContentControl>
<ContentControl Name="PersonContentControl">
<local:Person />
</ContentControl>
在本文中,Josh Smith
显示了如何访问DataTemplate
中的元素: