我正在使用HyerarchicalDataTemplate
根据TreeViewItem
的类型为DataContext
提供适当的模板。
我有一个2级树视图:组 - >实体。现在,实体可以是不同类型的,我想在ResourceDictionary
文件中为它们分配一个由简单的XAML表单构建的图标,具体取决于它们的类型,我找不到合适的方法来执行它
以下是我HierarchicalDataTemplate
的预览:
<HierarchicalDataTemplate DataType="{x:Type local:EntityTreeViewModel}">
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding IsCheckSelected}" />
<ContentControl DataContext="{Binding Entity}" Content="???" />
<TextBlock Text="{Binding Entity.Name}" />
</StackPanel>
</HierarchicalDataTemplate>
ContentControl
是我想放置我的XAML图标的地方,但我已准备好使用任何其他可以完成这项工作的组件。
所以基本上:如何在XAML中显示一个图标构建,这取决于我的实体的类型,如 实体类型A - &gt; ICONA 实体类型B - &gt; IconB
提前感谢您的帮助!
答案 0 :(得分:1)
试试这个:
<ContentControl Content="{Binding Entity}" xmlns:local="clr-namespace:WpfApplication1">
<ContentControl.Resources>
<DataTemplate DataType="{x:Type local:EntityA}">
<Image Source="iconA.png" />
</DataTemplate>
<DataTemplate DataType="{x:Type local:EntityB}">
<Image Source="iconB.png" />
</DataTemplate>
</ContentControl.Resources>
</ContentControl>
类EntityA
和EntityB
派生自相同的Entity
基类或实现相同的接口,并在命名空间WpfApplication1
中定义。