2011-11-21 136 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