我想使用XAML显示Dictionary<string, object>
的TreeView。每个词典的值都是string
,Dictionary<string, object>
或Dictionary<string, object[]>
。我无法找到显示所有三种情况的XAML。以下XAML将显示一个漂亮的TreeView,但终端节点(字符串)是空行。什么是正确的XAML或我必须使用转换器?
<TreeView>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Value}">
<TextBlock Text="{Binding Key}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
答案 0 :(得分:0)
您应该提供多个具有string
s专业化的模板:
<TreeView xmlns:system="clr-namespace:System;assembly=mscorlib">
<TreeView.Resources>
<HierarchicalDataTemplate ItemsSource="{Binding Value}">
<TextBlock Text="{Binding Key}"/>
</HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type system:String}">
<TextBlock Text="{Binding}" />
</DataTemplate>
</TreeView.Resources>
</TreeView>
答案 1 :(得分:0)
创建多个分层数据模板,然后使用ItemTemplateSelector
根据所显示对象的类型在它们之间进行选择。