2011-11-21 84 views

回答

1

这里是我的建议:

//create treeNode myParent = null; 
while (Reader.Read()) 
{ 
    switch (reader.NodeType) 
    { 
     case XmlNodeType.Element: // The node is an element. 
      var newNode = new TreeViewItem 
      { 
       Header = reader.Name 
      }; 

      if(theParent !=null) 
      { 
       theParent.Items.Add(newnode); 
      } 
      else 
      { 
       treeView.Items.Add(newnode); 
      } 
      theParent = newnode; 
      break; 

     case XmlNodeType.Text: //Display the text in each element. 
      Console.WriteLine(reader.Value); 
      break; 

     case XmlNodeType.EndElement: //Display the end of the element. 
      Console.Write("</" + reader.Name); 
      Console.WriteLine(">"); 
      if (theParent != null) 
      { 
       theParent = theParent.Parent; 
      } 
      break; 
    } 
} 
+0

嗯,我已经试过这个,但问题来与“Nodes.Add”错误'System.Windows.Controls.TreeViewItem'没有包含'节点'的定义和没有扩展方法'节点'接受可以找到类型为“System.Windows.Controls.TreeViewItem”的第一个参数(您是否缺少使用指令或程序集引用?) – BigBug

+0

@BlueMonster:我错过了WPF标记并更正了示例。 – Fischermaen

+0

由于某种原因,不起作用= /当我运行这个程序时,treeView是完全空的。我已经更新了我的问题中的代码,以便您可以确切地看到我在做什么。 – BigBug

0

不要试图直接操纵WPF的TreeView。相反,使自己的“视图模型”代表一个节点,然后绑定递归到TreeView使用HierarchicalDataTemplate

更多信息here