0

List我使用带有自定义项目渲染器和ArrayCollectionfor的 spark dataProvider

ItemRenderer 看起来像

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

但是,即使我更改了txtValue1or中的文本txtValue2,这些实际上并没有在 ArrayCollection 内的对象中更改。

myFirstValuemySecondValue[Bindable]标签装饰。

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

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

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

或者我理解错了什么?

4

1 回答 1

2

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

您需要使用 2 向绑定。自 Flex 4.0 以来,这非常容易。注意“@”符号的使用:

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

现在,对 的任何更改也TextInput将被推送到data对象。

阅读有关双向数据绑定的更多信息。

于 2011-06-16T10:06:48.883 回答