Как пройти узлы для DevExpress.XtraTreeList.TreeList - PullRequest
2 голосов
/ 15 сентября 2010

Я пытаюсь пройтись по узлам DevExpress.XtraTreeList.TreeList, и он не работает.

По сути, все, что у меня есть, это заголовок и значение узла, который я хочу найти. Есть ли простой способ, которым я могу найти это. После того, как он найден, я просто перемещаю фокус на новый узел и уже знаю, как это сделать, если у меня есть правильный индекс.

Спасибо

Ответы [ 2 ]

1 голос
/ 15 сентября 2010

Такие задачи должны быть реализованы с использованием итератора узла. Пожалуйста, обратитесь к этому примеру

на этот счет. NodesIterator описан в нашей документации:

NodesIterator

0 голосов
/ 16 сентября 2010

Я использовал Queue, а затем прошел через TreeList, используя текущий узел tree.nodes.

Dim text As String = "looking for this"
Dim myQueue As New Queue
For i As Integer = 0 To tree.Nodes.Count - 1
    If tree.Nodes(i).GetDisplayText("name").Equals(text ) Then
          tree.SetFocusedNode(tree.Nodes(i))
          Exit Sub
    Else
          If tree.Nodes(i).HasChildren Then
               myQueue.Enqueue(tree.Nodes(i))
          End If
    End If
Next

While myQueue.Count > 0
    Dim tempNode As DevExpress.XtraTreeList.Nodes.TreeListNode = CType(myQueue.Dequeue, DevExpress.XtraTreeList.Nodes.TreeListNode)
    For i As Integer = 0 To tempNode.Nodes.Count - 1
          If tempNode.Nodes(i).GetDisplayText("name").Equals(e.Button.Caption) Then
              tree.SetFocusedNode(tempNode.Nodes(i))
              Exit Sub
          Else
              If tempNode.Nodes(i).HasChildren Then
                   myQueue.Enqueue(tempNode.Nodes(i))
              End If
          End If
    Next
End While
...