绑定任意XML文档到WPFTreeView我想使用TypeConverter绑定任意XML文档到WPFTreeView。我最初的解决方案是使用递归,但是当文档很大时,UI会受到严重限制。以下链接讨论了TypeConverter,但针对特定的节点/元素组合:http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/edd843b7-b378-4c2d-926f-c053dbd7b340如果你不不知道XML文档是什么样的,我应该怎么做?由于这仅用于显示目的,我并不真正关心功能,我只想将XML绑定到TreeView。通过一些简单的修改,它适用于其他节点类型。首先,必须将HierarchicalDataTemplate.ItemsSource绑定XPath更改为“child::node()|attribute::*”以允许任何子节点和任何属性。然后,为其他NodeType添加DataTriggers。下面的例子对我有用。请注意,我为各种NodeType添加了图标,您可能想要删除它们:所以我问了一个关于如何将任何XML文档绑定到树视图的问题,如下所示:1.通过XMLProvider和HierarchicalDataTemplate将XML文档绑定到WPFTreeView。2.按以下格式显示XML文档的所有节点,包括具有子节点的节点:>Node1Node1Contents>ChildNode1ChildNode1Contents>ChildNode1'sChildNodeChildNode1'sChildNodeContents>Node2Node2Contents问题是我的TreeView转换每个XmlNodename属性绑定到TreeItem。如果是文本XmlNode,它将把#text绑定到TreeItem,这不是我想要的。所以我通过MSDN论坛上的这篇帖子得到了答案:http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/cbdb2420-1403-436f-aa7f-b1e3b1acb398/所以,诀窍是使用触发器根据遇到的节点类型设置值。需要注意的是,其他类型的节点将被忽略,XML文档可能包含不同的元素,因此这可能不适用于遇到的每种类型的节点。这是XAML:publicWindow1(){InitializeComponent();XmlDataProviderdataProvider=this.FindResource("xmlDataProvider")asXmlDataProvider;XmlDocumentdoc=newXmlDocument();//测试文档doc.LoadXml(@"text1text11text2text21text22");dataProvider.Document=文档;查看我在以下线程中的回答-BindingXMLDatatoWPFTreeViewControl我相信这正是您要找的。线程中的链接指向一个帖子,该帖子为您提供了一个带有下载源代码选项的分步示例。例子的写法是bindanyXMLdocumenttotheWPFtreeview以上是C#学习教程:BindinganyXMLdocumenttotheWPFTreeView分享的全部内容,如果对大家有用还需要详细了解C#学习教程,希望大家多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
