将TreeView绑定到深度未知的XMLDocent
本文关键字:未知 XMLDocent 深度 TreeView 绑定 | 更新日期: 2023-09-27 18:00:44
我正在尝试绑定一个看起来像的XMLDocument
<?xml version="1.0" encoding="utf-8"?>
<root>
<topic id="INDEX">
<title>Index</title>
<url>...</url>
<topic id="Result">
<title>Result</title>
...
其中嵌套的深度是未知的。如何在WPF中将其绑定到TreeView?
查看层次结构数据模板。这就是通常与TreeView结合使用的内容。
我以前没有将它们与XML数据一起使用过(您是否将XML加载到XDocument中?),但似乎可以将XMLDataProvider与HierarchicalDataTemplates一起使用。
我实际上已经破解了它…线索是使用
<HierarchicalDataTemplate.ItemsSource>
<Binding XPath="child::node()[@id]" />
</HierarchicalDataTemplate.ItemsSource>
过滤掉任何没有id atribute和类似的触发器的节点
<HierarchicalDataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=NodeType}" Value="Element">
<Setter TargetName="tb" Property="Text" Value="{Binding XPath=title}" />
</DataTrigger>
</HierarchicalDataTemplate.Triggers>
其中tb是一个简单的文本框。