# データバインディング

関数やオブジェクトの設定 (プロパティ) に直接固定値を設定できるだけでなく、他のプロパティに関連付けて間接的に値を定義することができます。

プロパティの値は、プロパティと関連付けられた他のプロパティの間で相互に同期されます。この機能により、動的でフレキシブルな画面設計が可能になります。プロパティを他のプロパティに関連付けることを、「データバインディング」と言います。

データバインディングの説明では、設定するプロパティとそれに関連付けるプロパティは、それぞれ「バインディングターゲット」および「バインディングソース」と呼ばれます。

MEMO: データバインディングに対応しているかは、各プロパティによって異なります。データバインディングへの対応は、各プロパティ情報の「データバインディング対応」セクションで確認できます。

Hide Show

1. データバインディングの例
2. バインディングソースの種類
3. データバインディングの「方向」
4. バインディングソースの値を変換 (コンバーター)

## データバインディングの例

データバインディングの例として、日付/時刻表示 [現在値] プロパティは、表示器の日付/時刻を含むプロパティに関連付けられています。この場合、[現在値] プロパティがバインディングターゲット、日付と時刻を含むプロパティがバインディングソースです。

表示器では、日付/時間表示器によって表示器の日付と時刻が表示されます。日付/時間表示器の値を変更すると、表示器の日付と時刻も変更されます。

1. [日付/時間表示器] のプロパティで [現在値] の横の四角いアイコン (プロパティマーク) をクリックし、[表示器] を選択します。
2. プロパティセレクターでバインディングソースプロパティを選択します。[ソースオブジェクト] から「Target01」を選択し、[ソースプロパティ] から「DateAndTime.DateTime」を選択します。
3. [OK] をクリックします。[現在値] の値がソースプロパティで表示されます。
4. [方向] から [双方向] を選択します。

データバインディングを設定すると、バインディングターゲットに関連付けられたバインディングソースは、以下のようにピリオドで区切られた文字列として表示されます。

オブジェクト |
変数 |

a. ソースオブジェクト

b. ソースプロパティ

## バインディングソースの種類

バインディングソースは、使用目的によって分類されます。バインディングソースを設定する時は、はじめに種類も選択します。以下に、各種類の使用目的を示します。

種類 | 使用目的
[ アラーム] | 共通のアラーム設定、アラームグループ、アラーム、および操作ログのプロパティを指定します。
[ 変数] | 変数とそのプロパティを指定します。
[ ローカル変数] | ローカル変数とそのプロパティを指定します。
[ グラフィックオブジェクト] | 画面、コンテンツ、レイアウトオブジェクト、図形および部品のプロパティを指定します。
[ 表示器] | 表示器設定のプロパティを指定します。
[ 機器] | 機器設定のプロパティを指定します。
[ レシピ] | レシピコントロール、レシピファミリー、レシピグループ、レシピおよびレシピデータのプロパティを指定します。
[ 言語テーブル文字列] | 言語テーブル ID を指定します。
[ 言語テーブル ID] | 変数を選択して、言語テーブル ID を間接的に指定します。
[ 言語テーブルローカル ID] | ローカル変数を選択して、言語テーブルローカル ID を指定します。

## データバインディングの「方向」

データバインディングを使用して、バインディングターゲットとバインディングソースの間でプロパティの値を反映させる方向を選択できます。

方向 | 説明
[双方向] | 値は、バインディングターゲットとバインディングソースの間で両方向に反映されます。
[単方向] | 値は、バインディングソースからバインディングターゲットに反映されますが、バインディングターゲットからバインディングソースには反映されません。 MEMO: バインディングターゲットのオブジェクトのプロパティに [入力モードを有効] がある場合はチェックを外してください。チェックが付いている場合エラーが表示されます。

バインディングソースを選択するプロパティセレクターウィンドウで方向を設定します。

## バインディングソースの値を変換 (コンバーター)

コンバーターを使用すると、バインディングソースの値を任意の規則に従ってバインディングターゲットに反映させるように変換できます。例えば、バインディングソースの値を 1/100 に変換するスケールコンバーターを使用した場合、バインディングソースに 500 を入力すると、バインディングターゲットは 5 を示します。

式コンバーターおよび範囲コンバーターは [方向] で [単方向] のみをサポートしています。

MEMO: コンバーターについての詳細は、以下を参照してください。
コンバーターの種類