我想要类似于 这里所要求的东西- 但是,我需要模板依赖于属性的值,这是一个枚举。
该类看起来与此类似:
class ResultBlock
{
public string Name { get; set; }
public BlockType Type { get; set; }
public IList<ResultBlock> ChildBlocks { get; private set; }
}
WhereBlockType
有三个不同的值,BLOCK, FILE, FOLDER
- 现在,我想创建一个数据模板以不同的方式呈现,具体取决于ResultBlock.Type
当前对象中的值。
我试过用 做这个DataType=
,但显然没有用。我确信只有在 XAML 中才能很容易地做到这一点。
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type docom:ResultBlock}" ItemsSource="{Binding ChildBlocks}">
<StackPanel Orientation="Horizontal">
<StackPanel.Resources>
<DataTemplate DataType="{x:Type docom:BlockType.BLOCK}">
<TextBlock Text="BLOCK:{Binding Name}" />
</DataTemplate>
</StackPanel.Resources>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.Resources>