0

我正在开发一个小程序,它会抓取一些数据并应将它们显示在 Treeview 或DotnetBars advTree控件上。

在按钮单击事件中,将收集一些数据,(字符串)输出如下所示。(树视图的结构)

myTree.add(1,-1,'','');
myTree.add(260, 1, 'All Releases', '');
myTree.add(6,260, 'Cat1', ''
myTree.add(7,6, '20.0.2'', ''
myTree.add(8,7, '20.0.21', '&some stuff'
myTree.add(9,7, '20.0.20a', '&some stuff'
myTree.add(10,7, '20.0.5', '&some stuff'
myTree.add(11,260, 'Cat2', ''
myTree.add(12,11, '12.2', ''
myTree.add(13,12, '12.2.77', '&some stuff'
myTree.add(14,12, '12.2.26', '&some stuff'

第一列包含节点 ID,第二列包含 ID,它是子节点的来源。第三个包含节点文本,它应该显示在树视图中,最后一个是为了以后的目的(值输出)。

结果:(树视图示例)

  • 所有版本
    • 第一类
      • 20.0.2
        • 20.0.21
        • 20.0.20a
        • 20.0.5
    • 类别 2
      • 12.2
        • 12.2.77
        • 12.2.26

如何以编程方式添加 Treeview 项目及其所有子项目?

4

1 回答 1

1
class MyTreeNode
{
    public String NodeTitle;
    public List<MyTreeNode> children;
}

我会将我想要的结构构建到一个对象中,然后递归地搜索 children 属性以查看是否需要添加更多分支。

public AddBranch(MyTreeNode parentNode)
{
    MyTree.Add(parentNode.NodeTitle);

    foreach (var node in parentNode.children)
    {
        AddBranch(node);
    }
}

// Note this is a rough mock code just to give you an idea of what recursion is.
于 2014-03-19T11:43:45.907 回答