【问题标题】:Bind TreeNode with XmlNode in C# windows form在 C# windows 窗体中将 TreeNode 与 XmlNode 绑定
【发布时间】:2013-10-26 15:58:53
【问题描述】:

所以,这就是代码,我希望 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 对象仍然被存储为 TreeNode,我怎样才能使上面的行成为可能?

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

【问题讨论】:

  • 如果您知道它始终是 Node,只需将其转换为该名称即可。

标签: c# xml treeview bind


【解决方案1】:

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

Node selected = (Node)treeView1.SelectedNode;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 2023-04-01
    • 2016-04-27
    • 2011-07-08
    相关资源
    最近更新 更多