ひがやすを技術ブログ

電通国際情報サービスのプログラマ

単方向バインディングと双方向バインディング

Flex2では、モデルとUIコンポーネントと間の自動バインディングがサポートされています。自動バインディングとは、モデルの値が更新されたら自動的にUIコンポーネントの表示が更新されたり、UIコンポーネントに入力している値が変わったら、自動的にモデルの値を更新する機能です。
デフォルトではバインディングは単方向です。基本的には、モデルの変更をUIコンポーネントが検知するだけ。例えば、次のようなMXMLがあったとします。

<?xml version="1.0" encoding="utf-8"?>

    
        <![CDATA[
           [Bindable]
           private var hoge:String;
        ]]>
    
    
    

これは、単方向バインディングなので、TextInputに入力した内容は、hoge変数には反映されません。したがって、TextInputに何か入力してもLabelには反映されません。ここで、次のようにBindingタグを使うと双方向バインディングにできます。

<?xml version="1.0" encoding="utf-8"?>

    
        <![CDATA[
           [Bindable]
           private var hoge:String;
        ]]>
    
    
    
    

これは、双方向バインディングなので、TextInputに入力した内容は、hoge変数に反映され、さらにhoge変数の変更がLabelに反映されるため、TextInputに入力した内容がLabelに反映されます。