Exibir uma lista de nós em um TreeView
Pergunta
Eu tenho um objeto nó que especifica o nível de nó
public class Node
{
public int Level { get; set; }
}
Eu quero usar uma lista ordenada de nós para construir um treeview
var nodes = new[]
{
new Node(){Level = 0},
new Node(){Level = 1},
new Node(){Level = 1},
new Node(){Level = 1},
new Node(){Level = 2},
new Node(){Level = 1},
new Node(){Level = 2},
new Node(){Level = 2},
new Node(){Level = 3},
};
O que é a maneira mais eficiente de fazer isso.
Graças
Rohan
Solução
Na sequência do Boo, você vai querer manter uma pilha dos nós como você passo para um nível superior. Se o nível for maior no nó actual, empurrar o nó anterior na pilha e usá-lo como o pai. Se o nível é inferior ao nó anterior, pop n nodos da pilha (n = previous_level - current_level). E usar a nova pilha-top como o pai
Outras dicas
Curva sobre sua lista de nós. Começando com índice 0, gravar Nível do nó. Em todos os índices subseqüentes verificar o nível contra o último nível registado. Se superior, adicioná-lo como um subnó do último nó adicionado. Se inferior, bem .. Se os casos de menores problemas .. encontrar o nó apropriado para adicioná-lo.