2011-02-11 73 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