如何使用 WPF 从 XML 文件创建树视图? [英] How to create treeview from XML file using WPF?
本文介绍了如何使用 WPF 从 XML 文件创建树视图?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是 XML 文件
<Root>
<RootNode name="CurrentDbName" value="DeltaTest Backup" DesiPath="E:\BuildBackups">
<ChildNode name="Application" value="App">
<LeafNode name="Source" value="Source" SourcePath="E:\Alertv2" />
<LeafNode name="Publish" value="Publish" SourcePath="C:\Alert_Source" />
</ChildNode>
<ChildNode name="Database" value="DB">
<LeafNode name="Dev" value="Dev" SourcePath="C:\Kiran3" />
<LeafNode name="Build" value="Build" SourcePath="C:\Kiran4" />
</ChildNode>
</RootNode> </Root>
由此,我想在 WPF 中创建一个树视图,看起来像
From this, I want to create a treeview in WPF and looks like
-Root
--DeltaTestBaclup
---App
----Source
----Publish
---Db
----Dev
----Build
所以请帮我创建这个树视图.
So please help me to create this treeview.
推荐答案
这是一种以编程方式完成的方法.这是基于 本网站的解决方案
Here is a way to do it programmatically. This is based on this website's solution
public YourWindow()
{
InitializeComponent();
BuildTree(treeView, XDocument.Load(System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), @"testxml.xml")));
}
private void BuildTree(TreeView treeView, XDocument doc)
{
TreeViewItem treeNode = new TreeViewItem
{
//Should be Root
Header = doc.Root.Name.LocalName,
IsExpanded = true
};
treeView.Items.Add(treeNode);
BuildNodes(treeNode, doc.Root);
}
private void BuildNodes(TreeViewItem treeNode, XElement element)
{
foreach (XNode child in element.Nodes())
{
switch (child.NodeType)
{
case XmlNodeType.Element:
XElement childElement = child as XElement;
TreeViewItem childTreeNode = new TreeViewItem
{
//Get First attribute where it is equal to value
Header = childElement.Attributes().First(s => s.Name == "value").Value ,
//Automatically expand elements
IsExpanded = true
};
treeNode.Items.Add(childTreeNode);
BuildNodes(childTreeNode, childElement);
break;
case XmlNodeType.Text:
XText childText = child as XText;
treeNode.Items.Add(new TreeViewItem { Header = childText.Value, });
break;
}
}
}
后面的代码将根据您的规范构建树.这是 XAML
That code behind will build the tree to your spec. This is the XAML
<Grid>
<TreeView Margin="20" Background="LightGray" x:Name="treeView" />
</Grid>
这篇关于如何使用 WPF 从 XML 文件创建树视图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文