`

Flex之数据绑定

阅读更多

       有关Flex的数据绑定的知识收集整理了一下:

      

      数据绑定使得在应用程序中不同的层间传递数据的变得简单和方便,通过将源属性与目标属
性进行关联来实现。当源属性的值有更新时,会产生一个事件来通知目的属性来进行更新。
当一个变量标记为可绑定后,其它对象就可以修改该变量的其它目的属性的值。将一个变量
上进行数据绑定,你必须使用下面三种方式中的一种来定义[Bindable]标记。
. 在一个类的定义之前
package com.oreilly.flexcookbook
{i
import flash.events.EventDispatcher;
[Bindable]
public class DataObject extends EventDispatcher{}
}
在一个类创建之前添加[Bindable]标记创建一个绑定的表达式从而使得类的所有共有
属性变得可以绑定。所有可以绑定的类必须由IEventDispatcher 类实现,因为数据绑
定是基于事件驱动,来复制源数据到目的数据。
. 在变量的前面进行声明
[Bindable] private var _lastName:String;
[Bindable] protected var _age:Number;
[Bindable] public var firstName:String;
声明为私有的变量标记为可绑定时,则只能在类中进行绑定。保护的变量则只能在
继承或者类本身可见。而共有变量都可见。
. 在属性的前面通过隐含的getter/setter 方法来变向的进行绑定:
private var _lastName:String;
...
[Bindable]
public function get lastName():String
{
return _lastName;
}p
public function set lastName( str:String ):void
{_
lastName = str;
}
当你通过添加[Bindable]标记在getter 的声明的上方,来定义隐含的getter/setter 为可
绑定的方法,则该变量可以通过点标语法进行存取。这样可以你通过同样的语法来存
取非绑定的变量,自有变量等来设置数据源绑定。
在框架内部,当绑定的变量值更新时,框架会发送propertyChange 事件来更新数据。
[Bindable]标记接受一个事件属性,通过定义一个自定义的事件类型:
[Bindable(event="myValueChanged")]
默认情况下事件属性被设置为propertyChange。如果不进事件类型进行修改,则目的变量会
被内部使用该类型进行提示。如果你自定义了该属性,则必须在类的内部进行声明。
绑定是通过事件通知来实现的,当应用程序中的源变量修改或者在初始化时,就会被触发。
你可以通过执行绑定的方法,来强制要求目标为mx.core.UIComponent 子类的对象的数据绑
定执行。

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics