1
私は、FlexCellのデータをバインドするフレックスツリーコンポーネントを持っています。また、カスタムのITreeDataDescriptorを実装してツリーをフィルタリングしました。子ノードがなければ、最初のレベルのノードは消えません(フィルタリングされません)。それは第2レベルの下から機能します。Flexツリーは、ノードをフィルタリングするためにITreeDataDescriptorを使用します。
どうすればいいですか? すべての子ノードが除外されている場合にのみ、最初のレベルのノードを除外します。かなりこのexampleよう
、親は子供が
を行っている際にソースがArrayCollectionのであり、それはかなりの次
var dataSource:ArrayCollection = new ArrayCollection();
dataSource.addItem(myObject1);
dataSource.addItem(myObject2);
dataSource.addItem(myObject3);
dataSource.addItem(myObject4);
ようなものだとmyObject1〜myObject4に子が存在し消えてしまう以外のArrayCollection同じ種類の
を隠さ見にITreeDataDescriptor実装のGetChildrenメソッド()メソッドでは、再帰的チェックを行いますすべてのノードの子ノードをチェックして、ノードが空であるかどうかを判定します。それはうまく動作します。ルートノードに関しては、私はそれを持っていない、代わりに私はルートノードとしてmyObject1〜myObject4を持っています。それは問題かもしれませんか? – Eatdoku
ルートノードを追加して問題を解決しましたが、showRoot = falseを設定した場合、getChildren()関数はルート上で呼び出されないため、フィルタリングは適用されません。それでも何か? – Eatdoku
子供がいないノードをフィルタリングするfilterFunctionをコレクションに追加する必要があると思います。 –