在 Infragistics UltraTree 中,如何选择根下的所有节点?
问问题
3852 次
2 回答
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;
}
于 2010-07-07T09:34:35.317 回答
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;
}
于 2014-09-23T15:34:05.470 回答