在绑定中使用数组------ArrayCollection

转载 2012年03月27日 21:53:22

                            在绑定中使用数组
在使用数组进行工作时,比如Array 或者ArrayCollection 对象,可以把数组作为数据绑定
表达式的源或目的。


注意: 当使用数组作为绑定源时,应该使用ArrayCollection 类型的数组,因为ArrayCollection 类在数组或数组元素发生变化时能够发出事件来触发数据绑定。

比如,对ArrayCollection.addItem(), ArrayCollection.addItemAt(),ArrayCollection.removeItem(), 以及ArrayCollection.removeItemAt()方法的调用都会触发数据绑定。

绑定到数组通常将数组绑定给Flex 控件的dataProvider 属性,

 

 

下面范例说明将数组绑定用于List 控件:
<?xml version="1.0"?>
<!-- binding/ArrayBindingDP.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
public var myAC:ArrayCollection = new ArrayCollection(["One", "Two", "Three", "Four"]);
[Bindable]
public var myAC2:ArrayCollection = new ArrayCollection(["Uno", "Dos", "Tres", "Quatro"]);
]]>
</mx:Script>
<!-- Data binding updated at application startup,
when myAC is modified, and when an element of
myAC is modifed. -->


<mx:List dataProvider="{myAC}"/>
<!-- Data bindings to myAC updated. -->


<mx:Button label="Change Element" click="myAC[0]='mod One'"/>
<!-- Data bindings to myAC updated. -->


<mx:Button label="Add Element"  click="myAC.addItem('new element');"/>
<!-- Data bindings to myAC updated. -->


<mx:Button label="Remove Element 0" click="myAC.removeItemAt(0);"/>
<!-- Data bindings to myAC updated. -->


<mx:Button  label="Change ArrayCollection"  click="myAC=myAC2"/>
</mx:Application>


这个例子定义了一个ArrayCollection 对象,然后将List 控件的dataProvider 属性设置为对这个ArrayCollection 的数据绑定。当修改ArrayCollection 对象中的元素,

或者修改对ArrayCollection 对象的引用,都会触发数据绑定。
绑定到数组中的元素
可以使用数组中的单个元素作为数据绑定源,如下例所示:
<?xml version="1.0"?>
<!-- binding/ArrayBinding.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
public var myAC:ArrayCollection = new ArrayCollection([
"One", "Two", "Three", "Four"]);
[Bindable]
public var myAC2:ArrayCollection = new ArrayCollection([
"Uno", "Dos", "Tres", "Quatro"]);
]]>
</mx:Script>
<!-- Data binding updated at application startup
and when myAC modified. -->
<mx:Text id="text1" text="{myAC[0]}"/>
<!-- Data binding updated at application startup,
when myAC modified, and when myAC[0] modified. -->
<mx:Text id="text2" text="{myAC.getItemAt(0)}"/>
<mx:Button id="button1"
label="Change Element"
click="myAC[0]='new One'"/>
<mx:Button id="button2"
label="Change ArrayCollection"
click="myAC=myAC2"/>
</mx:Application>
如果通过方括号语法[]来指定数组元素作为数据绑定表达式的源,那么数据绑定只在应用
启动时触发,或者在数组或其引用被更新时触发。当这个数组元素被更新的时候不会触发数据
绑定。
但数据绑定表达式中的myAC.getItemAt(0)则会在该数组元素变化时被触发更新。因此,id
为 text2 的Text 控件在点击button1 时会被更新,而id 为text1 的Text 控件则不会被更新。
当使用数组中的元素作为数据绑定表示的源时,应当在绑定表达式中使用
ArrayCollection.getItemAt()方法。

点击button2 时将myAC2 拷贝给myAC,这会触发对数组元素的所有数据绑定而不论它们是如
何实现的。

相关文章推荐

ArrayCollection不完全绑定

  • 2011年12月11日 22:21
  • 1KB
  • 下载

flex tree 的使用 ArrayCollection为数据源

效果如图所示:  

Springmvc前后台数据数组绑定

  • 2013年07月02日 17:24
  • 558B
  • 下载

Array,Arraylist,ArrayCollection使用详解

1.1.1 Array的声明 var arr1: Array =new  Array("小强","小红","小刚"); var arr2: Array =['小强','小红','小...

angularjs2版本创建一个数组,将数组里面的内容通过数据绑定的形式循环到table表单中

angularjs2版本创建一个数组,将数组里面的内容通过数据绑定的形式循环到table表单中...
  • clt1992
  • clt1992
  • 2016年09月22日 23:01
  • 3810

绑定CUDA三维数组与纹理内存

众所周知,Global memory没有Cache,访问速度很慢,Shared memory访问速度很快,但是容量很小,对于较大的数组,将其绑定至texture memory往往是个不错的选择。Tex...
  • zhg2507
  • zhg2507
  • 2013年12月27日 09:02
  • 680

SpringMVC数据绑定全面示例(复杂对象,数组等)

已经使用SpringMVC开发了几个项目,平时也有不少朋友问我数据怎么传输,怎么绑定之类的话题,今天做一个总结。在此之前,大家可以看一下我之前的一篇关于Spring restful的文章http://...

数组控件绑定事件的方法

1、遍历查找,速度相对慢,不过对于小规模数组来说不是问题: 01 import java.awt.*; 02 i...
  • monkztx
  • monkztx
  • 2013年01月27日 17:00
  • 140

[JavaScript/JQuery] js数组删除,新增,元素删除,事件绑定

javascript返回某个元素在数组中的索引值的indexOf方法–兼容所有浏览器 在现在代浏览器中判断一个元素在不在一个数组中,咱们可以用Array对象的indexOf()方法来取得这个元素在当前...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在绑定中使用数组------ArrayCollection
举报原因:
原因补充:

(最多只允许输入30个字)