【问题标题】:Adobe Flex arraycollectionAdobe Flex 数组集合
【发布时间】:2011-11-01 08:33:51
【问题描述】:
我想将单个集合对象用于两个不同的 UI 组件。 1. Datagrid 和 2nd 是图表组件。我不想更改 arraycollection 对象内的任何内容,但我想同时将它与两个不同的组件一起使用,并进行细微的更改。我知道我们可以使用过滤器功能,但不确定如何将过滤器应用于 arraycollection 对象,以便一个组件(数据网格)可以使用原始的 arraycollection 对象,而第二个组件(图表)使用修改后的对象。
谢谢,
【问题讨论】:
标签:
apache-flex
flex4
adobe
【解决方案1】:
如果您对两个不同的组件使用相同的 ArrayCollection 作为 dataProvider,则应用于该 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 应用过滤器,反之亦然。
根据我的经验,这是首选方法。