加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex学习笔记8——数据绑定

发布时间:2020-12-15 01:18:24 所属栏目:百科 来源:网络整理
导读:为模型和视图层传递数据提供了一种快捷的机制。以下场景不适用: ???????? 1 )界面需要按严格顺序更新; ???????? 2 )只有某些特定时期才需要告知属性的变化。 使用方法 1. ?????? {} :返回值类型必须与目的属性兼容,可以使用有返回值的函数、字符串连接

为模型和视图层传递数据提供了一种快捷的机制。以下场景不适用:

???????? 1)界面需要按严格顺序更新;

???????? 2)只有某些特定时期才需要告知属性的变化。

使用方法

1.?????? {} :返回值类型必须与目的属性兼容,可以使用有返回值的函数、字符串连接符、算数和逻辑表达式。常用于定义视图上的控件属性随模型数据的变化而变化。

2.?????? <mx:Binding> source属性可以使用 {} 包含表达式,用于1)模型上的数据随着控件的输入数据变化而变化。 2)建立同一目的属性与多个不同源属性的绑定关系

3.?????? BindingUtils:? 动态定义数据绑定,但很少使用。

定义方式

源使用[Bindable]定义,产生propertyChangeEvent 事件

也可以定义事件的名称,如[Bindable(event=”fooChanged”)] ,这样需要自己创建或发出该事件才能触发事件绑定(不推荐)。

属性

??? Public类:全部的public变量、具有getset的属性

函数

a)?????? 可绑定的属性作为函数的参数,实例如下:

????????? <mx:TextArea text=”{usdFormater.format(a)}”>

b)?????? 带返回值的函数作为数据源

常用于某一个属性对外只提供get方法,该值在类内被改变时,调用地方能通过get方法取得新值

private var _contacts:ArrayCollection;

[Bindable(event="contactsChanged")]

public function get contacts():ArrayCollection

{

return _contacts;

}

// Stores given contacts and the current search keyword

public function saveContacts( list:ArrayCollection,searchKey:String ):void

{

_contacts = list;

//trigger binding by dispatching change event

dispatchEvent( new Event( "contactsChanged" ) );

lastSearch = searchKey;

}


?

对象

?????????? 如果想让对象绑定起作用,需要保证对象和对象所属类都绑定,如

?????????? ? Private var foo:MyObject;?? {foo.name}如果要起作用,则MyObjectname属性和foo对象都要绑定

?????????? Object类的属性绑定:使用ObjectProxy对象,如Object info=new ObjectProxy();

数组

???????? 使用ArrayCollection作为绑定源,且使用 getItemAt访问数据元素,如下:

[Binable]

Public var myAC:ArrayCollection=new ArrayCollection([1,3,5]);

<mx:Text id=”text2” text=”{myAC.getItemAt(0)}”>  //如果使用myAC[0]则只在引用或数组引用更新时触发,而0的元素变化时不会触发

发生时机

???????? 源属性被改变

???????? 源对象发出initialize事件时

???????? 调用executeBinding()方法

可以使用mx.binding.utils.ChangeWatcher观察数据绑定,观察者在数据绑定发生时,会激活一个事件,如 ChangeWatcher.watch(textarea,”text”,监听函数)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读