2013-11-10 62 views
0

我正在使用显示元素列表的GUI。确定可折叠树中的某个节点是否隐藏

所有的元素都在一个维迭代数组,因此显示它们通常会是这个样子:

foreach (Element e: elements) { 
     display.Display(e); 
    } 

我现在需要一种方法来组织一个树状结构中的元素就像这个例子: enter image description here

在我的系统中,“文件夹”元素和“文件”元素没有区别,但我可以访问元素的“深度”和“isExpanded”值。

如何根据迭代前一个元素的数据来确定是否显示元素?

回答

0

我想我已经想通了,但可能有某些情况下搞砸了:

bool prevIsCollapsed = false; 
int collapsedPropertyDepth = 0; 

// iterate through each property of this component 
for (Property p : properties) 
{ 
    int depth = property.depth; 
    if (prevIsCollapsed && depth > collapsedPropertyDepth) 
    { 
     // dont display this property 
     continue; 
    } 

    if (!property.isExpanded) 
    { 
     prevIsCollapsed = true; 
     collapsedPropertyDepth = depth; 
    } 
    else 
    { 
     prevIsCollapsed = false; 
    } 
}  
相关问题