2013-04-16 65 views
2

我有一个可以容纳孩子的物体,所以每个物体的孩子都有孩子。所以想象是一个3级分层树。但是这个数字并不是固定的,它可以是4,5甚至6个等级。我已经有了一个BindingList,它是所有根节点的列表。有没有人知道一个简单的方法将其转换为表格?所以每个级别将是层次结构的一列。 创建列很简单,但我不确定如何在不知道需要多少个循环的情况下填充它。将树列表转换为表

任何建议,非常感谢。

干杯。

回答

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

其中节点是孩子的类型,Loc.children是一个列表或一组儿童。

该递归将访问所有节点。

0

我有管理通过跟踪最终节点来排序这个问题,然后简单地逐一返回层次结构。 (所以,从技术上讲,进入该行的最后一个单元并向左返回。)