2012-10-11 61 views
0

我有XML列表,我想在树视图中显示它,父节点将是XML文件名,子节点将XML节点数据及其属性。 我寻找通用的解决方案,以便我可以从文件系统加载任何xml的任何。 我如何使用HierarchicalDataTemplate和XmlDataProvider在WPF中绑定TreeView的XML列表

请帮助我。

+0

你能举一个例子说明XML是怎么样的?无论如何,您可以使用LinQ从XML文件中检索数据。 – Abbas

回答

0

您需要实现自己的XmlViewModel类。这个类必须有一个属性Header,Attributes和Children,以及一般XML文件应该具有的其他东西。如果你想让这个类需要能够解析你的XML文本。然后你必须在TreeView中创建一个代表这个类的HierarchicalDataTemplate。有些事情是这样的:

<HierarchicalDataTemplate 
     DataType="{x:Type local:XmlViewModel }" 
     ItemsSource="{Binding Children}" 
     > 
... 

最后,您需要将TreeView.ItemSource绑定到XmlViewModels的集合。 也许有些事情是这样的:

<TreeView ItemsSource="{Binding YourRoot.Children}"> 
... 

也看到这两个环节,将有助于你:

http://www.codeproject.com/Articles/17025/Custom-TreeView-Layout-in-WPF

http://www.codeproject.com/Articles/26288/Simplifying-the-WPF-TreeView-by-Using-the-ViewMode

希望这有助于你解决这个问题..

0

这是另一个codeproject链接:

TreeView XML

我用这一个,它让我很快就走了。我最终大幅扩展了它,但这是一个很好的起点。