Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 数据绑定的替代方案_Apache Flex_Actionscript 3 - Fatal编程技术网

Apache flex 数据绑定的替代方案

Apache flex 数据绑定的替代方案,apache-flex,actionscript-3,Apache Flex,Actionscript 3,作为将数组集合绑定到数据网格的数据提供程序的替代方法,我是否可以在创建时将数组集合作为数据提供程序分配给数据网格,并在每次更新数组集合时执行invalidateProperties;无效主义者;要重新渲染数据网格 我所描述的方法有意义吗 我所描述的方法有意义吗 有点。如果使用get/set方法定义了arrayCollection ac,则没有理由每次更改数据时都不能使用set方法在DataGrid上设置数据提供程序 如果您这样做,那么您很可能不必更新DatGrid的属性或显示列表,因为仅仅更换数

作为将数组集合绑定到数据网格的数据提供程序的替代方法,我是否可以在创建时将数组集合作为数据提供程序分配给数据网格,并在每次更新数组集合时执行invalidateProperties;无效主义者;要重新渲染数据网格

我所描述的方法有意义吗

我所描述的方法有意义吗

有点。如果使用get/set方法定义了arrayCollection ac,则没有理由每次更改数据时都不能使用set方法在DataGrid上设置数据提供程序

如果您这样做,那么您很可能不必更新DatGrid的属性或显示列表,因为仅仅更换数据提供程序就可以了

大概是这样的:

private var _ac : ArrayCollection;
public function get ac():ArrayCollection){
 return this._ac;
}

public function set ac(value:ArrayCollection){
 this._ac = value;
 this.dataGrid.dataProvider = this.ac;
}

答对了,每次ac值更新时,DataGrid上的dataProvider也会更新

@Wade:你能解释一下你为什么倾向于拒绝吗?谢谢。@Flextras:需要注意的是,该集合正在逐项修改,而不是作为一个整体进行修改,即_ac.addItemobj;理想情况下,我希望在将集合重新指定为数据网格的数据提供程序之前,将集合中的所有对象添加/删除。通过getter/setters方法可以做到吗?@dank106我想现在更能理解了。您没有更改dataPRovider引用,而是更改该引用指向的集合。这是正确的吗?在集合中添加或删除项时,DataGrid应自动更新。这与绑定无关。这是因为DataGrid实现了collectionChange事件处理程序。但是,如果修改集合中对象的属性,DataGrid将不会更新。为此,您必须在DataGrid上执行相关的无效宣告。@Flextras:是的,您是正确的。我正在寻找一种更有效的方法来处理集合的更改;我希望在强制网格重新渲染之前,等待集合中的所有更改发生。另外,感谢您指出数据网格实现了集合更改处理程序;我的印象是需要绑定。您可以检查代码,但最有可能的是默认collectionChange处理程序使用组件生命周期;在这种情况下,一系列连续的更改不会同时更新。但是,您始终可以扩展和覆盖以更改默认方法。