Flex 数据绑定的问题

来源:百度知道 编辑:UC知道 时间:2024/09/24 19:25:33
我的后台是java,我想达到这么一个效果,后台执行完一段逻辑后,在controller中可以通过一个字符串名字或者别的方式,让界面(flex/as/mxml)即时同态响应,有点像ajax,但我希望在view层只有一个方法,利用反射或别的什么机制,动态改变view控件的值,而不是每个控件对应一个方法或者通过if else来判断到底修改哪个控件。
我想最好这样,给view的控件加监听并且预先注册,注册时key就是那个字符串,value就是控件。当后台需要改变view控件的时候,可以先告诉view的控件并且通过那个key来找到需要更新的控件,但是具体不知道怎么做,望高手指点。
但这样做无法在java中实现动态赋值啊,因为这个只能在as中执行

补充:你把所需要显示的列表的dataProvider和你自己定义的那个ArrayCollection用BindingUtils邦定,只要你的这个ArrayCollection的值发生了变化,那么你显示出来的列表随时也跟着变了。

可以通过使用mx.binding.utils.BindingUtils类来实现
其中有一个方法bindProperty(site:Object, prop:String, host:Object, chain:Object, commitOnly:Boolean = false):ChangeWatcher

使用时比如
BindingUtils.bindProperty(list,"dataProvider",this,"thisData");
或者
BindingUtils.bindProperty(textInput, "text", userVO, "name");
具体的帮助中是这样写的:(可以参见http://livedocs.adobe.com/flex/3/langref/mx/binding/utils/BindingUtils.html)
bindProperty () method

public static function bindProperty(site:Object, prop:String, host:Object, chain:Object, commitOnly:Boolean = false):ChangeWatcher

Binds a public property, prop on the site Object, to a bindable property or property chain.