<mx:Binding />

Доволі часто ми створюємо глобальну змінну (в рамках mxml-компоненту), яка зв’язується (binding) зі змінною внутрішнього компоненту:

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
	<mx:TextInput text="{textInputText}" />
	<mx:String id="textInputText" />
</mx:Canvas>

Але при цьому зв’язування є одностороннім, тобто, в наведеному прикладі, якщо користувач введе текст в поле, то змінна textInputText не зміниться. На допомогу приходить теґ <Binding>.

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
	<mx:TextInput id="ti" text="{textInputText}" />
	<mx:String id="textInputText" />
	<mx:Binding source="ti.text" destination="textInputText" />
</mx:Canvas>

Єдиний мінус в тому, що треба вигадувати id для TextInput :)

Оновлення:

Виявляється, що можна зробити простіше :)

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
	<mx:TextInput id="ti" text="{textInputText}" />
	<mx:String id="textInputText">{ti.text}</mx:String>
</mx:Canvas>

Це не позбавляє нас від вигадування id, але зберігає одну строчку коду. А <binding> можна використовувати для зв’язування до більш ніж одного об’єкту.

Таґи: ,

Стаття зачинена. Коментарі більше не приймаються.