我有一个HierarchicalDataTemplate,它是我的TreeView的ItemSource。当TreeView显示数据时,他有一个rootnode。如何删除rootnode? p>
HierarchicalDataTemplate:
<Window.Resources>
<HierarchicalDataTemplate DataType="cards" ItemsSource="{Binding XPath=child::node()}">
<TextBlock Text="Root"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="category" ItemsSource="{Binding XPath=child::node()}">
<TextBlock Text="{Binding XPath=@name}" />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="card">
<TextBlock Text="{Binding XPath=./title}" />
</HierarchicalDataTemplate>
<XmlDataProvider x:Key="dataxml" XPath="root/cards" />
</Window.Resources>
的TreeView:
<TreeView Name="treeViewCategory" ItemsSource="{Binding Source={StaticResource dataxml}, XPath=.}"/>
XML:
<root>
<cards>
<category name="Categoryname">
<card>
<title>something</title>
...
.
</card>
<category name="SubCategory">
<card>
<title>something else</title>
..
...
</card>
</category>
</category>
<card>
<title>text</title>
...
..
</card>
</cards>
</root>
实际观点:
o Root
o Categoryname
- something
o SubCategory
- something else
- text
应该是:
o Categoryname
- something
o SubCategory
- something else
- text
答案 0 :(得分:4)
当您分配TreeView本身的ItemsSource时,只需更深入一步,以便根的子项成为树视图的项目。
答案 1 :(得分:0)
<TreeView Name="treeViewCategory" ItemsSource="{Binding Source={StaticResource dataxml}, XPath=./*}" />
我一直试图更改XmlDataProvider的源代码。没想到我应该在TreeView上改变路径: - (
为什么重要?