2011-02-11 69 views
1

我有一个flex数据绑定到ArrayCollection的组件。我还实现了一个自定义的ITreeDataDescriptor来过滤树。一切正常,除非第一级节点不会消失(被过滤),如果它下面没有子节点的话。它从第二层开始工作。Flex Tree使用ITreeDataDescriptor过滤节点

任何建议如何做到这一点? 只有当所有的子节点都被过滤掉时,才会过滤出第一级节点。

非常喜欢这个example,除了家长当孩子不见了,

源是一个ArrayCollection和它很像以下

var dataSource:ArrayCollection = new ArrayCollection(); 
dataSource.addItem(myObject1); 
dataSource.addItem(myObject2); 
dataSource.addItem(myObject3); 
dataSource.addItem(myObject4); 

和myObject1〜myObject4有孩子就会消失的ArrayCollection具有相同的类型。

回答

0

这很难,没有任何代码来回答,但这里有一个办法提出了一些建议:

  • 确保你有一个根节点,这样你也可以过滤掉1级(子节点根节点
  • 的)做在的getChildren)的ITreeDataDescriptor执行递归检查(法,看是否有节点的所有孩子都删除/隐藏
+0

嗨,我有一个的getChildren()方法检查所有节点的孩子以确定它是否为空。它工作正常。至于根节点,我没有,而是我有myObject1〜myObject4作为根节点。这可能是问题所在? – Eatdoku 2011-02-11 17:01:17