2011-08-22 167 views
0

我想將單個集合對象用於兩個不同的UI組件。 1. Datagrid和2nd是圖表組件。我不想改變arraycollection對象內的任何東西,但我想用兩個不同的組件同時使用它,只需稍作更改。我知道我們可以使用過濾函數一些如何但不知道如何將過濾器應用到arraycollection對象,以便一個組件(datagrid)可以使用原始數組收藏對象,而第二個組件(圖表)使用修改後的組件。Adob​​e Flex arraycollection

感謝,

回答

4

如果使用相同的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的,反之亦然。

這是我的經驗中的首選方法。

+0

感謝您的快速回答flextras。我還發現了一個有趣的鏈接。 http://www.briankotek.com/blog/index.cfm/2009/3/18/Flex-Tip-Why-ListCollectionView-Is-Your-Friend – TrexTroy