如果使用相同的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