Apache Flexのデータバインディングの使い方
はじめに
Apache Flexのデータバインディングの使い方を簡単にまとめます。
文字列のデータバインディング
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script>
<![CDATA[
[Bindable]
private var message:String = "Hello World";
]]>
</fx:Script>
<s:Label left="10" top="15" text="{message}" />
<s:TextInput left="10" top="40" text="@{message}" />
</s:WindowedApplication>
バインディングしたいデータに[Bindable]をつけておきます。(今回は、message)
画面側で、text="{message}"のように{}で囲んで指定することで、データバインディングができます。
messageの値が変わった場合、リアルタイムに画面の表示に反映されます。
バインディングを双方向にしたい場合は、text="@{message}"のように@{}で囲んで指定することで、双方向のデータバインディングができます。
双方向にすることで、messageの値の変更をリアルタイムに反映するだけでなく、TextInput等のUIコンポーネントを利用することでmessageの値をリアルタイムに更新することが可能となります。
数値のデータバインディング
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script>
<![CDATA[
[Bindable]
private var count:int = 5;
]]>
</fx:Script>
<s:Label left="10" top="15" text="{count}" />
<s:NumericStepper left="10" top="40" value="@{count}" />
</s:WindowedApplication>
数値についても同様です。
プロパティのデータバインディング
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
fontFamily="Meiryo">
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var ac:ArrayCollection = new ArrayCollection([
{c1: 100, c2: "aaa"},
{c1: 200, c2: "bbb"},
{c1: 300, c2: "ccc"}
]);
]]>
</fx:Script>
<s:Label left="10" top="15" text="データは{ac.length}件です" />
<s:DataGrid left="10" top="40" right="10" bottom="10" dataProvider="{ac}" >
<s:columns>
<s:ArrayList>
<s:GridColumn headerText="列1" dataField="c1" />
<s:GridColumn headerText="列2" dataField="c2" />
</s:ArrayList>
</s:columns>
</s:DataGrid>
</s:WindowedApplication>
text="データは{ac.length}件です"のように指定することで、プロパティのデータバインディングができます。
ArrayCollectionのlengthの値が変わった場合、リアルタイムに画面に反映されます。
個人的にはよく使います。
Author And Source
この問題について(Apache Flexのデータバインディングの使い方), 我々は、より多くの情報をここで見つけました https://qiita.com/lune1122/items/02ead457dfce5d663bd7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .