UltraTree Infragistics - 选择所有节点

时间:2010-07-07 08:04:42

标签: tree infragistics tree-nodes ultratree

在Infragistics UltraTree中,如何选择根目录下的所有节点?

2 个答案:

答案 0 :(得分:3)

据我所知,没有选择所有节点的方法。但你可以像这样建立自己的:

Queue<UltraTreeNode> queue = new Queue<UltraTreeNode>(ultraTree1.Nodes);
while (queue.Count > 0)
{
    UltraTreeNode node = queue.Dequeue();
    foreach(UltraTreeNode child in node.Nodes)
        queue.Enqueue(child);
    node.Selected = true;
}

答案 1 :(得分:0)

对此的一种可能修改是使用 yield return 语句将所有树节点作为可枚举集合提供:

private IEnumerable<UltraTreeNode> AllTreeNodes()
{
    Queue<UltraTreeNode> queue = new Queue<UltraTreeNode>(ultraTree1.Nodes.OfType<UltraTreeNode>());
    while (queue.Count > 0)
    {
        UltraTreeNode node = queue.Dequeue();
        foreach (UltraTreeNode child in node.Nodes)
            queue.Enqueue(child);

        yield return node;
    }
}

然后你可以浏览每个项目并进行你想要的任何处理(无论是选中它们还是别的):

foreach (var node in AllTreeNodes())
{
    // Take whatever action is needed
    //
    node.Selected = true;
}