我正在开发一个显示元素列表的GUI。
所有元素都在一维可迭代数组中,因此显示它们通常如下所示:
foreach (Element e: elements) {
display.Display(e);
}
我现在需要一种方法来组织树形结构中的元素,如下例所示:
在我的系统中,“文件夹”元素和“文件”元素之间没有区别,但我可以访问元素的“depth”和“isExpanded”值。
如何根据迭代之前的元素所获得的数据来确定是否应该显示元素?
发布于 2013-11-10 01:16:26
我想我已经弄明白了,但可能有一些情况会把它搞砸:
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;
}
}
https://stackoverflow.com/questions/19884901
复制相似问题