2013-10-26 30 views
0

所以,这是代码,我whant同时包含树节点和对的XMLNodes treeView1.Nodes,格外这一类的对象存储在上面的代码:绑定树节点,在C#Windows窗体的XmlNode

public class Node : TreeNode 
    { 
     public XmlNode node{ set; get; } 

     public Node(XmlNode node):base(){ 
      this.node = node; 
      base.Text = node.Name; 
     } 

     public void delete() 
     { 
      node.RemoveAll(); 
      node = null; 
      base.Remove(); 
     } 
    } 

    private void populate(XmlNodeList nodes, TreeNodeCollection tree) 
    { 
     if (nodes != null) 
     { 
      foreach (XmlNode child in nodes) 
      { 
       int index = tree.Add(new Node(child)); 
       if (child.ChildNodes != null) 
       { 
        populate(child.ChildNodes, tree[index].Nodes); 
       } 
      } 
     } 
    } 

而且现在我意识到构建的节点对象仍然被存储为TreeNode,我怎么能使上面的行可能?

Node selected = treeView1.SelectedNode; 
selected.delete(); 
+0

如果你知道它永远是一个'Node',只投它为此,你会被设置。 – Chris

回答

0

其实,Node对象没有被存储为树节点,它们树节点。或者更确切地说,是TreeNode的一个子类。所以,你的情况,如果你知道在你的树中的所有节点将类型Node的,你可以简单地投射到它:

Node selected = (Node)treeView1.SelectedNode; 
+0

那么简单... – Benedictus