确定是否隐藏了可折叠树中的节点

时间:2013-11-10 00:35:31

标签: user-interface tree hide

我正在开发一个显示元素列表的GUI。

所有元素都在一维可迭代数组中,因此显示它们通常看起来像这样:

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

我现在需要一种方法来组织树结构中的元素,如下例所示: enter image description here

在我的系统中,“folder”元素和“file”元素之间没有区别,但我可以访问元素的'depth'和'isExpanded'值。

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

1 个答案:

答案 0 :(得分: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;
    }
}