【问题标题】:Programmatically fill a Treeview at runtime with given structure以编程方式在运行时使用给定结构填充 Treeview
【发布时间】:2014-03-19 11:38:59
【问题描述】:

我正在开发一个小程序,它会抓取一些数据并将它们显示在 树形视图或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,它是子节点的来源。第三个包含节点文本,应该在树视图中显示,最后一个是为了以后的目的(值输出)。

结果:(树视图示例)

  • 所有版本
    • 1 类
      • 20.0.2
        • 20.0.21
        • 20.0.20a
        • 20.0.5
    • 二类
      • 12.2
        • 12.2.77
        • 12.2.26

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

【问题讨论】:

  • 您同时标记了“WPF”和“asp.net”。这有点令人困惑。如果它是您正在寻找的 WPF TreeView,则可以通过视图模型中的绑定轻松填充 TreeView,而您不需要'不必编写代码来添加项目。
  • 抱歉,采纳了建议。我更喜欢用 Winforms 来解决它。

标签: c# treeview dotnetbar


【解决方案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.

【讨论】:

  • 谢谢你的提示,我试试看!
猜你喜欢
  • 1970-01-01
  • 2016-02-18
  • 2019-01-30
  • 1970-01-01
  • 2017-02-04
  • 2012-02-23
  • 2011-06-27
  • 2021-04-20
  • 1970-01-01
相关资源
最近更新 更多