将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绑定到深度未知的XMLDocent

查看层次结构数据模板。这就是通常与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是一个简单的文本框。