Xaml-data-binding
XAML-データバインディング
データバインディングは、部分クラスを使用してデータを表示および操作するWindowsランタイムアプリにシンプルで簡単な方法を提供するXAMLアプリケーションのメカニズムです。 データの管理は、このメカニズムでのデータの表示方法から完全に分離されています。
データバインディングにより、ユーザーインターフェイス上のUI要素とデータオブジェクト間のデータフローが可能になります。 バインディングが確立され、データまたはビジネスモデルが変更されると、更新がUI要素に自動的に反映され、その逆も同様です。 標準のデータソースではなく、ページ上の別の要素にバインドすることもできます。 データバインディングには2つのタイプがあります-
- 一方向のデータバインディング
- 双方向のデータバインディング
一方向データバインディング
一方向バインディングでは、データはソース(データを保持するオブジェクト)からターゲット(データを表示するオブジェクト)にバインドされます。
一方向のデータバインディングの簡単な例を見てみましょう。 次のXAMLコードは、いくつかのプロパティを持つ4つのテキストブロックを作成します。
2つのテキストブロックのテキストプロパティは「名前」と「タイトル」に静的に設定され、他の2つのテキストブロックのテキストプロパティは、以下に示すEmployeeクラスのクラス変数である「名前」と「タイトル」にバインドされます。
このクラスには、 Name と Title の2つの変数と、従業員オブジェクトを返すEmployeeオブジェクトが初期化される静的メソッドが1つあります。 したがって、プロパティ、名前、およびタイトルにバインドしていますが、そのプロパティが属するオブジェクトを選択していません。 最も簡単な方法は、次のC#コードでバインドしているプロパティを持つDataContextにオブジェクトを割り当てることです-
このアプリケーションを実行してみましょう。MainWindowで、EmployeeオブジェクトのNameとTitleに正常にバインドされていることがすぐにわかります。
双方向のデータバインディング
双方向バインディングでは、ユーザーはユーザーインターフェイスを介してデータを変更し、そのデータをソースで更新できます。 ユーザーがビューを見ているときにソースが変更された場合は、ビューを更新する必要があります。
例
3つのコンボボックスアイテムを持つ1つのコンボボックスといくつかのプロパティを持つ1つのテキストボックスが作成される次の例を見てみましょう。 この例では、標準のデータソースはありませんが、UI要素は他のUI要素にバインドされています。
上記のコードをコンパイルして実行すると、次の出力が生成されます。 ユーザーがコンボボックスからアイテムを選択すると、それに応じてテキストボックスのテキストと背景色が更新されます。
同様に、ユーザーがテキストボックスに有効な色の名前を入力すると、コンボボックスとテキストボックスの背景色も更新されます。