0

我有一个列表,我想用作动态扩展的树视图,但如果我要在列表中有多个列表,我需要在初始列表的定义中声明它。我缺少什么来实现这一目标,还有什么更好的方法可以用来实现我的目标吗?

为了上下文:我试图像树视图一样填充它,以便我可以在我的应用程序中复制注册表。

4

1 回答 1

1

为您的方案使用正确的类型。

在你的情况下,这是一个TreeNode像这样的类:

public class TreeNode
{
    private readonly List<TreeNode> _children = new List<TreeNode>();

    public TreeNode(string name, params TreeNode[] children)
    {
        Name = name;
        _children.AddRange(children);
    }

    public List<TreeNode> Children { get { return _children; } }
    public string Name { get; set; }
}

假设以下树:

Root
+ Child1
  + Child1a
  + Child1b
+ Child2
  + Child2a
    + Child2aA
    + Child2aB
  + Child2b

你会像这样创建它:

var root = new TreeNode("Root",
                        new TreeNode("Child1",
                                     new TreeNode("Child1a"),
                                     new TreeNode("Child1b")),
                        new TreeNode("Child2",
                                     new TreeNode("Child2a",
                                                  new TreeNode("Child2aA"),
                                                  new TreeNode("Child2aB")),
                                     new TreeNode("Child2b")));
于 2013-07-10T15:03:33.073 回答