.NETのデータバインドについてまとめてみた①
データバインドとは?
画面表示やデータ入力に用いるUIコントロールとデータを管理するデータオブジェクトを、手続き的な操作の記述によらず、宣言的な設定により連結することで、従来より簡潔に入出力操作を実現するアーキテクチャ方式です。
■例■ 従来(手続き的な操作の記述)
(表示)
MyTextBox.Text = DataObject.StringValue;
(入力)
DataObject.StringValue = MyTextBox.Text;
■例■ データバインド(宣言的な設定)
MyTextBox.DataBindings.Add(new Binding(“Text”, DataObject, “StringValue”, true));
データバインドを使うメリットは?
- フレームワークに処理を任せることでコード記述が少なくて済みます。
- 宣言的な設定を行うことでデザイン時のビジュアル編集が容易になります。
■例■ フォーマットと詳細 バインドダイアログ
データバインドの詳細を設定
■例■ データソースウインドウ
↓ DataSamples.SampleDataSet.SampleTable.IntValue をドラッグして、フォーム上にドロップ
データバインド済みのUIコントロール(一覧Grid、詳細各種UIコントロール)を自動生成
バインドできるデータオブジェクトは?
データ構造
全てのデータオブジェクトをデータバインドすることができます。
- 単一データ(基本データ型)
int型、string型、DateTime型、byte[]型など - 複合データ(一般的なクラス)
プロパティをフィールド要素として扱う。 - 行列データ(テーブル、コレクション)
IListSourceインターフェースを継承する。
行となる複合データオブジェクトのリストを持つ。
列は複合データオブジェクトのプロパティになる。 - データセット
行列データオブジェクトを複数内包する。
型定義
データスキーマが定義されているか否かで、デザイン時のビジュアル編集の容易さが変わってきます。
- 型付きデータセット
データスキーマが定義されたデータセット。 - 汎用データセット
データスキーマが定義されないデータセット。 - 定義済みクラス
データスキーマが定義されたクラスであり、このクラスのコレクションを保持するデータオブジェクトを取り扱う場合が多い。 - 匿名クラス
型推論的にデータスキーマが定義されたクラスであり、LINQ操作の結果として使用頻度が増えてきている。
バインドできるUIは?
.Netで作れる全てのGUIアプリケーションでデータバインドすることができます。
- Windows Forms アプリケーション
System.Windows.Forms以下の多くのUIコントロール - ASP.NET Web アプリケーション
System.Web.UI.WebControls以下の多くのUIコントロール - WPF アプリケーション
System.Windows.Controls以下の多くのUIコントロール
■例■ Windows Forms アプリケーション
■例■ ASP.NET Web アプリケーション
■例■ WPF アプリケーション
サンプルソリューション
DataBindingSamplesSolution.zip
最初へ 前へ 次へ 最後へ