如果使用相同的ArrayCollection作爲數據提供程序爲兩個不同的組成部分,那麼任何篩選或排序應用到的ArrayCollection將在兩個組件出現。
你想做的事情無法完成。
但是,您可以基於相同的來源創建多個ArrayCollections,並以不同的方式對它們應用過濾器。從概念上講是這樣的:
public var arrayCollection1 : ArrayCollection = new ArrayCollection();
public var arrayCollection2 : ArrayCollection = new ArrayCollection();
protected function onIGotTheArray(value:Array):void{
arrayCollection1.source = value;
arrayCollection2.source = value;
dataGrid.dataProvider = arrayCollection1;
chart.dataProvider = arrayCollection2;
}
現在,你可以申請一個過濾器,以第一的ArrayCollection不影響第二ArrayCollection的,反之亦然。
這是我的經驗中的首選方法。
感謝您的快速回答flextras。我還發現了一個有趣的鏈接。 http://www.briankotek.com/blog/index.cfm/2009/3/18/Flex-Tip-Why-ListCollectionView-Is-Your-Friend – TrexTroy