Adobe Flex arraycollection

时间:2011-08-22 17:47:46

标签: flex flex4 adobe

我想将单个集合对象用于两个不同的UI组件。 1. Datagrid和2nd是图表组件。我不想更改arraycollection对象中的任何内容,但我想同时使用它与两个不同的组件进行微小的更改。我知道我们可以使用过滤器函数一些如何但不确定如何将过滤器应用于arraycollection对象,以便一个组件(datagrid)可以使用原始的arraycollection对象,第二个组件(图表)使用修改后的对象。

谢谢,

1 个答案:

答案 0 :(得分:4)

如果对两个不同的组件使用与dataProvider相同的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,反之亦然。

根据我的经验,这是首选方法。