0

Listカスタム アイテム レンダラーとArrayCollectionforでスパークを使用し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、各テキストボックスのイベントをリッスンし、親データプロバイダーにアクセスして値を手動で設定することです。

私は何を間違っていますか?このように動作するはずですか?

または、私は何を間違って理解しましたか?

4

1 に答える 1

2

デフォルトでは、flexでのバインドは一方向です。つまり、dataオブジェクトの変更はUIで更新されますが、その逆はありません。

双方向バインディングを使用する必要があります。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 に答える