如何在Flex 3中创建双向数据绑定?
发布时间:2020-12-15 01:46:54 所属栏目:百科 来源:网络整理
导读:我需要将属性绑定到编辑控件并让控件将其值写回同一属性.问题是,我在创建控件之前设置了源值: mx:Panel mx:Script ![CDATA[ [Bindable] public var editedDocument: XML; ]] /mx:Script mx:TextInput id="docLabel" text="{editedDocument.@label}"/ mx:Bin
我需要将属性绑定到编辑控件并让控件将其值写回同一属性.问题是,我在创建控件之前设置了源值:
<mx:Panel> <mx:Script> <![CDATA[ [Bindable] public var editedDocument: XML; ]]> </mx:Script> <mx:TextInput id="docLabel" text="{editedDocument.@label}"/> <mx:Binding source="docLabel.text" destination="editedDocument.@label"/> </mx:Panel> 我这样称呼: var xmlDoc: XML = <document label="some label" />; var myPanel: MyPanel = new MyPanel(); myPanel.editedDocument = xmlDoc; parent.addChild(myPanel); 这是怎么回事: > docLabel文本字段最后为空(等于“”) 我想要的是这个: > docLabel文本字段应包含“某个标签” 如何使用Flex 3完成此任务? 编辑 我也试过这个: <mx:Panel> <mx:Script> <![CDATA[ [Bindable] public var editedDocument: XML; ]]> </mx:Script> <mx:TextInput id="docLabel"/> <mx:Binding source="editedDocument.@label" destination="docLabel.text"/> <mx:Binding source="docLabel.text" destination="editedDocument.@label"/> </mx:Panel> 结果是一样的. 解决方法
您可以尝试使用BindingUtils在创建类之后以编程方式创建绑定:
http://life.neophi.com/danielr/2007/03/programmatic_bindings.html 我已经习惯于解决类似的问题.如果您无法从链接中发现评论,我会挖掘我的源代码并查看我能找到的内容. private function init():void { var xmlDoc: XML = <document label="some label" />; var myPanel: MyPanel = new MyPanel(); myPanel.editedDocument = xmlDoc; parent.addChild(myPanel); BindingUtils.bindProperty(docLabel,"text",editedDocument,"label"); //or maybe it should be one of these,I have not done binding to an XML attribute before BindingUtils.bindProperty(docLabel,"@label"); BindingUtils.bindProperty(docLabel,"{@label}"); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |