はじめに
前回までの記事で、データが画面(コントロール)上に表示されましたが、単に取得して表示したに過ぎません(一部フォーマットの部分はバインドを使用しました)。
今回の記事では、Silverlightアプリケーション上で取得したデータをもう少し掘り下げて取り扱ってみます。XAMLがもつ強力なデータバインド機能を用いて、データサービスから取得したデータをどのように扱うべきかのポイントを紹介します。
また、この連載はサンプルシステムをベースに説明を行います。以下のサイトからサンプルコードや実行ファイルを入手して、確認しながら読み進めていただけると、より一層理解が深まると思います。
サンプルアプリケーションの公開サイト
Silverlightアプリケーションのデータバインド
データバインドとは、データソースとターゲットを文字通りバインド(結びつけ)します。これによって、データを画面に表示すること、データの内部管理を簡素化することなどが可能です。
ご存知の通り、SilverlightはXAMLを採用しているので、データバインドはXAMLベースの実装になります。例えば、Windows Formでのデータバインドには、BindingSourceコントロールを使用することが可能でしたが、XAMLベースのデータバインドにはこうした特定のコントロールは存在していません。その代わりに、XAML自体にバインドの機能が組み込まれています。コーディングしていくうえで、データバインドの実装はXAMLのマークアップ言語(静的)、C#などの.NET Framework言語(動的)、どちらの実装も可能ですが、今回の記事ではXAMLベースで紹介していきます。
基本的な構文は以下になります。
<対象オブジェクト プロパティ=”{Binding パスの値, バインディングプロパティの値}”>
例えばTextBlockコントロールであれば、次のようになります。
<TextBlock x:Name="productNameTextBlock" Text="{Binding Product.Name}" FontSize="16" FontWeight="Bold" />
上記のコードでは、TextBlockコントロールのTextプロパティがバインドターゲットです。そこに、何らかのデータであるProduct.Nameが表示される形になります。