Apache flex Flex树使用ITreeDataDescriptor筛选节点

Apache flex Flex树使用ITreeDataDescriptor筛选节点,apache-flex,tree,filtering,Apache Flex,Tree,Filtering,我有一个flex树组件,它的数据绑定到ArrayCollection。我还实现了一个自定义ITreeDataDescriptor来过滤树。除第一级节点不会消失外,所有操作都正常。如果在第一级节点下没有子节点,则会对其进行过滤。它从第二层开始工作 有什么建议吗? 仅当筛选出第一级节点的所有子节点时,才希望筛选出第一级节点 很像这样,只是当孩子们不在的时候,父母会消失 源代码是一个ArrayCollection,它与以下内容非常相似 var dataSource:ArrayCollection =

我有一个flex树组件,它的数据绑定到ArrayCollection。我还实现了一个自定义ITreeDataDescriptor来过滤树。除第一级节点不会消失外,所有操作都正常。如果在第一级节点下没有子节点,则会对其进行过滤。它从第二层开始工作

有什么建议吗? 仅当筛选出第一级节点的所有子节点时,才希望筛选出第一级节点

很像这样,只是当孩子们不在的时候,父母会消失

源代码是一个ArrayCollection,它与以下内容非常相似

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

在myObject1~myObject4中,也有具有相同类型的子数组集合。

如果没有任何代码,这很难回答,但下面是一些方法建议:

确保您有一个根节点,这样您还可以过滤掉级别1的节点以及根节点的子节点 在ITreeDataDescriptor实现的getChildren方法中执行递归检查,以查看是否删除/隐藏了节点的所有子节点
您好,我有一个getChildren方法,它检查所有节点的子节点以确定它是否为空。它很好用。对于根节点,我没有,而是将myObject1~myObject4作为根节点。这可能就是问题所在?通过添加根节点解决了问题,但如果我将showRoot设置为false,则不会在根节点上调用getChildren函数,因此不会应用任何筛选。我想你需要在你的集合中添加一个filterFunction来过滤掉没有任何子节点的节点。