将分层xml绑定到treeview

我有一个标准的.NET 3.5 winforms项目。 在它上面,它有一个树视图。 我已经使用XmlSerializer和相关类将List实例序列化为XML,以获得分层XML文件。

现在,我需要将此XML文件绑定到树视图以显示其所有节点/元素(父节点,子节点等)。

有没有方便这样做(LINQ与否),而不必解析XML等?

谢谢

不需要解析XML以将其内容绑定到TreeView的解决方案不存在 (如果它在内部退出, 当然 ,解析XML)。

无论如何,您可以使用LINQ to XML自己实现:

 private void Form1_Load(object sender, EventArgs e) { var doc = XDocument.Load("data.xml"); var root = doc.Root; var x = GetNodes(new TreeNode(root.Name.LocalName), root).ToArray(); treeView1.Nodes.AddRange(x); } private IEnumerable GetNodes(TreeNode node, XElement element) { return element.HasElements ? node.AddRange(from item in element.Elements() let tree = new TreeNode(item.Name.LocalName) from newNode in GetNodes(tree, item) select newNode) : new[] { node }; } 

TreeNodeEx

 public static class TreeNodeEx { public static IEnumerable AddRange(this TreeNode collection, IEnumerable nodes) { var items = nodes.ToArray(); collection.Nodes.AddRange(items); return new[] { collection }; } } 

你必须手动完成。

以下是Microsoft的一个示例:

http://support.microsoft.com/kb/317597