我正在开发一个小程序,它可以抓取一些数据并将它们显示在一个 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'
第一列包含Node-ID,第二列包含ID,它是来自的子节点。第三个包含节点文本,它应该显示在树视图中,最后一个用于以后的目的(值输出)。
结果:(树视图示例)
如何以编程方式添加Treeview项及其所有子项?
答案 0 :(得分: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.