如何在TreeView中显示各种XML标记

时间:2017-01-10 11:24:49

标签: xml wpf xaml treeview

<Parent id="parent">
    <ChildType1 id="SingleChild"/>
    <ChildType2>
        <ChildOfchild id="ChildChild1"/>
        <ChildOfChild id="ChildChild2"/>
    </ChildType2>
</Parent>

我希望在WPF TreeView中显示上述XML,其方式是ChildType1和ChildType2都显示在同一“级别”上,而ChildType2将是可扩展的。我正在使用带有HierarchicalDataTemplates的XmlDataProvider。

编辑。 我目前这是我正在使用的代码:

 <!-- Template for Child2 -->
 <HierarchicalDataTemplate x:Key="child2_hdt">
     <TextBlock Text="{Binding XPath=@id, StringFormat={}ChildChild: {0}}"/>
 </HierarchicalDataTemplate>        

 <!-- Template for Child1 -> Child2 -->
 <HierarchicalDataTemplate x:Key="child1_hdt"
                           ItemTemplate="{StaticResource child2_hdt}"
                           ItemsSource="{Binding}">
     <TextBlock Text="{Binding XPath=@id, StringFormat={}Child1: {0}}"/>
 </HierarchicalDataTemplate>

<!-- Template for Parent-->
<HierarchicalDataTemplate x:Key="parent_hdt"
                          ItemTemplate="{StaticResource child1_hdt}"
                          ItemsSource="{Binding}">
    <TextBlock Text="{Binding XPath=@id}"/>
</HierarchicalDataTemplate>

这非常有效,除了在树视图中的Child1下面有一个可扩展的空白空间。

Current treeview

1 个答案:

答案 0 :(得分:0)

我的问题的解决方案是:

<TextBlock Text="{Binding Name}"/>

的Insead
<TextBlock Text="{Binding XPath=@id, StringFormat={}Child1: {0}}"/>