2013-04-16 2 views
2

У меня есть объект, который может содержать детей, поэтому дети каждого объекта сами имеют детей. поэтому представьте себе иерархическое дерево уровня 3 уровня. однако это число не фиксировано, это может быть 4,5 или даже 6 иерархических уровней. У меня уже есть BindingList, который является списком всех корневых узлов. Кто-нибудь знает прямой способ конвертировать это в таблицу? поэтому каждый уровень будет одним столбцом иерархии. Просто создать столбцы, но я не уверен, как заполнить его, не зная, сколько циклов мне нужно?Конвертировать список деревьев в таблицу

Любые предложения приветствуются.

Cheers.

ответ

1

Я думаю, что лучший способ сделать это - это рекурсия. Я не знаю структуру BindingList, я буду писать наиболее общем я могу, чтобы вы адаптировали правильное название методов:

void visitNode(Node loc, int level) 
{ 
    //write here the code to save the node loc in the column = 'level' 

    foreach(Node n in Loc.children) 
     visitNode(n, level + 1); 
} 

Где Node являются типом ребенка, и Loc.children является список или набор детей.

Эта рекурсия посетит все узлы.

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^