2010-07-07 3 views

답변

3

내가 아는 한, 모든 노드를 선택하는 방법은 없습니다. 그러나이 같은 자신을 구축 할 수 있습니다 : 다음

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; 
    } 
} 

당신이에 대한

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; 
} 
0

한 가지 가능한 수정이 열거 컬렉션으로 모든 트리 노드를 제공하기 위해 수율 반환 문을 사용하는 것입니다 각 항목을 실행하고 원하는 처리 (선택 항목 또는 다른 항목으로 표시)를 수행 할 수 있습니다.

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