UltraTree基础设施-选择所有节点

UltraTree基础设施-选择所有节点,tree,infragistics,tree-nodes,ultratree,Tree,Infragistics,Tree Nodes,Ultratree,在Infragistics UltraTree中,如何选择根下的所有节点?据我所知,没有选择所有节点的方法。但你可以像这样建造自己的: Queue<UltraTreeNode> queue = new Queue<UltraTreeNode>(ultraTree1.Nodes); while (queue.Count > 0) { UltraTreeNode node = queue.Dequeue(); foreach(UltraTreeNode

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

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

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;
}
Queue Queue=新队列(ultraTree1.Nodes);
而(queue.Count>0)
{
UltraTreeNode节点=queue.Dequeue();
foreach(node.Nodes中的UltraTreeNode子节点)
排队。排队(子级);
node.Selected=true;
}

对此的一个可能修改是使用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;
}