2011-08-22 118 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