나는 사용하여 시도 :TreeView에서 모든 노드의 인덱스를 가져 오는 방법은 무엇입니까?
TreeNode node = TreeView1.FindNode()
을하지만 루트 노드가 발견 만. 하위 노드를 찾을 수 없습니다.
모든 노드의 색인을 가져오고 싶습니다. 그리고 위의 코드를 사용하여 색인으로 노드를 찾고 확인란을 선택하고 싶습니다.
모든 노드를 반복하기 위해 foreach
을 사용해 보았지만 하위 노드와 색인을 찾을 수 없습니다. 당신이 쓸 수
public static IEnumerable<T> Traverse<T>(
this IEnumerable<T> source
, Func<T, IEnumerable<T>> childrenSelector)
{
var stack = new Stack<T>(source);
while (stack.Any())
{
var next = stack.Pop();
yield return next;
foreach (var child in childrenSelector(next))
stack.Push(child);
}
}
이 사용 : : 그런 다음 할 수
var allNodes = new[]{root}.Traverse(node => node.Nodes);
을 내가 2013
예. 누락 된 태그를 추가했습니다. – RKh