0

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

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

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

我现在需要一种方法来组织树结构中的元素,如下例所示: 在此处输入图像描述

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

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

4

1 回答 1

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;
    }
}    
于 2013-11-10T01:16:26.150 回答