0

先说我对 WPF 比较陌生。

所以基本上我得到了以下 XML,我需要将树元素和下面的所有内容绑定到 TreeView。是否有一种将特定 XML 元素绑定到 TreeView 的简单方法?

<Diff>
    <Packages
        left="c:\foo\foo"
        right="c:\bar\bar" />
    <Section name="Filesystem" state="different">
        <Tree>
            <Node name="VFS" state="different">
                <Node name="Windows" state="different">
                    <Node name="System32" state="different">
                        <Leaf name="notepad.exe" state="left-only" file="VFS\Windows\System32\notepad.exe" />
                        <Leaf name="cmd.exe" state="same" />
                    </Node>
                    <Node name="WinSxS" state="same">
                        <Leaf name="foo" state="same" />
                    </Node>
                </Node>
                <Node name="ProgramFilesX86" state="different">
                    <Leaf name="foo.exe" state="different" />
                    <Node name="Bar" state="right-only" >
                        <Leaf name="bar.exe" state="right-only" file="VFS\ProgramFilesX86\Bar\bar.exe" />
                    </Node>
                </Node>
            </Node>
        </Tree>
    </Section>
    <Section>
        <!--Another tree-->
    </Section>
</Diff>

也不确定这是否重要,但请注意可能有多个部分元素,每个元素下面都有一棵树。

4

1 回答 1

0

假设您使用anXmlDataProvider将控件绑定到 XML,您应该能够设置属性XPath过滤结果。

<XmlDataProvider 
   x:Key="FilesystemXmlData"
   Source="source.xml"
   XPath="Section[@name='Filesystem']/Tree" 
/>

然后,您可以使用aHierarchicalDataTemplate将数据绑定到树。

这篇 CodeProject 文章中有一个简单的示例。

于 2013-06-27T18:26:49.657 回答