通过Item Renderer编辑ArrayCollection

时间:2011-06-16 10:04:07

标签: flex actionscript-3 data-binding itemrenderer bindable

我使用自定义项呈示器的spark ListArrayCollection的{​​{1}}。

ItemRenderer看起来像

dataProvider

但是,即使我更改了<mx:TextInput id="txtValue1" text="{data.myFirstValue}"/> <mx:TextInput id="txtValue2" text="{data.mySecondValue}"/> txtValue1中的文本,但实际上并未在ArrayCollection中的对象中更改这些文本。

txtValue2myFirstValue使用mySecondValue标记进行修饰。

我的理解是,如果将[Bindable]属性设置为绑定某个属性,则应自动应用更改。

所以我使用的 HACK (或者我认为)是收听每个文本框的text事件,并访问父数据提供程序并手动设置值。

我做错了什么?它应该像这样工作吗?

或者我理解错了什么?

1 个答案:

答案 0 :(得分:2)

默认情况下,flex中的绑定是单向的。换句话说,您的data对象中的更改会在UI中更新,但不会相反。

您需要使用双向绑定。从Flex 4.0开始,这非常简单。注意使用“@”符号:

<mx:TextInput id="txtValue1" text="@{data.myFirstValue}"/>
<mx:TextInput id="txtValue2" text="@{data.mySecondValue}"/>

现在,对TextInput所做的任何更改都会被推送到data对象。

详细了解Two way data binding