Редактировать ArrayCollection с помощью средства визуализации элементов - PullRequest
0 голосов
/ 16 июня 2011

Я использую искру List с пользовательским средством визуализации элементов и ArrayCollection для dataProvider.

ItemRenderer выглядит примерно так:

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

Однако, хотя яизмените текст в txtValue1 или txtValue2, это фактически не изменяется в объекте внутри ArrayCollection.

myFirstValue и mySecondValue отмечены тегом [Bindable].

Насколько я понимаю, если свойство text установлено для привязки к определенному свойству, изменения должны применяться автоматически.

Таким образом, HACK (или около тогоЯ думаю), что я использую для прослушивания события focusOut каждого текстового поля, доступа к родительскому поставщику данных и установки значений вручную.

Что я делаю неправильно?Это должно работать так?

Или что я не так понял?

1 Ответ

2 голосов
/ 16 июня 2011

По умолчанию связывание в flex является односторонним.Другими словами, изменения в вашем data объекте обновляются в пользовательском интерфейсе, но не наоборот.

Вам необходимо использовать двустороннюю привязку.Это очень просто, начиная с Flex 4.0.Обратите внимание на использование знака «@»:

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

Теперь любые изменения, внесенные в TextInput, будут перенесены и на объект data.

Подробнеео Двухстороннее связывание данных .

...