Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以C#windows形式将TreeNode与XmlNode绑定_C#_Xml_Treeview_Bind - Fatal编程技术网

以C#windows形式将TreeNode与XmlNode绑定

以C#windows形式将TreeNode与XmlNode绑定,c#,xml,treeview,bind,C#,Xml,Treeview,Bind,这就是代码,我使用treeView1.Nodes来包含TreeNodes和XmlNodes,特别是像上面的代码那样存储此类对象: public class Node : TreeNode { public XmlNode node{ set; get; } public Node(XmlNode node):base(){ this.node = node; base.Text = node.Nam

这就是代码,我使用treeView1.Nodes来包含TreeNodes和XmlNodes,特别是像上面的代码那样存储此类对象:

    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 );
                }
            }
        }
    }
现在我意识到构建的节点对象仍然存储为树节点,我如何才能使上面的行成为可能

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

实际上,
Node
对象并不是存储为树节点,而是树节点。或者更确切地说,是
TreeNode
的一个子类。因此,在您的情况下,如果您知道树中的所有节点都是
节点类型
,您可以简单地对其进行强制转换:

Node selected = (Node)treeView1.SelectedNode;

如果您知道它将始终是一个
节点
,只需将其转换为该节点,您就可以进行设置。