データ連結と Windows フォーム
更新 : 2007 年 11 月
Windows フォームでは、従来のデータ ソースに対してだけでなく、データを含むほとんどすべての構造に対して連結できます。実行時に計算する値、ファイルから読み取った値、または他のコントロールの値から派生した値の配列に対してバインドできます。
さらに、任意のコントロールの任意のプロパティをデータ ソースにバインドできます。一般に、従来のデータ バインディングでは、表示プロパティ (TextBox の Text プロパティなど) をデータ ソースにバインドします。.NET Framework では、バインディングをとおして他のプロパティを設定することもできます。バインディングを使用して実行できるタスクの例を以下に示します。
イメージ コントロールのグラフィックを設定する。
1 つ以上のコントロールの背景色を設定する。
コントロールのサイズを設定する。
基本的に、データ バインディングは、フォーム上の任意のコントロールに対して、実行時にアクセスできる任意のプロパティを自動的に設定する手段です。
データ バインディングの種類
Windows フォームでは、単純連結と複合連結という 2 つの種類のデータ連結を利用できます。それぞれ、異なる利点があります。
データ バインディングの種類 |
説明 |
---|---|
単純データ連結 |
データセット テーブル内の列の値など、1 つのデータ要素にコントロールをバインドする機能です。この種類のバインディングは、TextBox コントロールや Label コントロールなど、通常 1 つの値だけを表示するコントロールにおいて一般的です。実際には、コントロールの任意のプロパティをデータベース内のフィールドに連結できます。Visual Studio には、この機能に対する広範なサポートが用意されています。 詳細については方法 : Windows フォームに単純バインド コントロールを作成する およびデータ連結に関連するインターフェイス および方法 : Windows フォームでデータ間を移動する およびデータ連結に関連するインターフェイス および方法 : Windows フォームでデータ間を移動する およびデータ連結に関連するインターフェイス および方法 : Windows フォームでデータ間を移動する および方法 : Windows フォームに単純バインド コントロールを作成する およびデータ連結に関連するインターフェイス および方法 : Windows フォームでデータ間を移動する および方法 : Windows フォームに単純バインド コントロールを作成する. |
複合データ バインディング |
複数のデータ要素 (通常はデータベースの複数のレコード) に対してコントロールをバインドする機能です。複合バインディングは、リストベース バインディングとも呼ばれます。複合バインディングをサポートするコントロールの例としては、DataGridView、ListBox、および ComboBox の各コントロールがあります。複合データ バインディングの例については、「方法 : Windows フォームの ComboBox または ListBox コントロールをデータにバインドする」を参照してください。 |
BindingSource コンポーネント
Windows フォームでは、データ バインディングを簡単にするために、データ ソースを BindingSource コンポーネントにバインドした後で、コントロールを BindingSource にバインドするという方法を使うことができます。BindingSource は、単純バインディングと複合バインディングの両方の状況で使用できます。いずれの場合も、BindingSource は、データ ソースとバインド コントロールの間の仲介役を果たし、変更通知、通貨管理、およびその他のサービスを提供します。
データ連結を使用する一般的な状況
大多数の商用アプリケーションでは、何らかの種類のデータ ソースから読み取った情報を使用します。そのときには、通常、データ バインディングを使用します。以下に示す一覧は、データの表示および操作の手段としてデータ バインディングを利用する、特に一般的な使用例です。
目的 |
説明 |
---|---|
レポート |
レポートには、印刷された文書にデータを表示したりまとめたりするための柔軟な手段が用意されています。データ ソースから選択した内容を画面に表示したりプリンタで印刷したりするレポートは、ごく頻繁に作成されています。レポートの一般的な例としては、一覧表、請求書、要約などがあります。通常、項目は一覧の列として格納され、各項目の下にサブ項目があるという形式になりますが、データに最適なレイアウトを選択することが必要です。 |
データ エントリ |
大量の関連データを入力する場合やユーザーに情報の入力を求める場合は、データ エントリ フォームを使用するのが一般的です。ユーザーは情報を入力するか、またはテキスト ボックス、オプション ボタン、ドロップダウン リスト、およびチェック ボックスを使用して選択肢から情報を選択できます。情報は、入力情報に基づいた構造のデータベースに送信され、格納されます。 |
マスター/詳細リレーションシップ |
マスター/詳細アプリケーションは、関連し合うデータを参照するために使用される形式の 1 つです。具体的には、2 つのデータ テーブルと、両者を結び付けるリレーションシップがあります。業務に関連する定番の例としては、"Customers" テーブルと "Orders" テーブルがあって、両者の間に、顧客とそれぞれの注文とを関連付けるリレーションシップが張られているというものがあります。DataGridView コントロールを使用した 2 つの Windows フォームを持つマスター/詳細アプリケーションの作成の詳細については、「方法 : Windows フォームの 2 つの DataGridView コントロールを使用してマスター/詳細形式のフォームを作成する」を参照してください。 |
検索テーブル |
データの表示と操作にかかわるもう 1 つの状況として、テーブル検索があります。多くの場合は、より大きなデータ表示の一部として、ComboBox コントロールによってデータが表示および操作されます。重要な点は、ComboBox コントロールに表示されるデータが、データベースに書き込まれたデータとは異なるということです。たとえば、食品雑貨店で販売されている項目を ComboBox コントロールで表示している場合に、製品の名前 (パン、牛乳、卵など) を見る必要があるとします。しかし、データベース内での情報の取得を簡単にするため、また、データベースの正規化のために、特定の注文に含まれる個別の項目に関する情報は、項目番号 (#501、#603 など) として格納されています。したがって、フォーム上の ComboBox に表示されている食品雑貨項目の "わかりやすい名前" と、注文に含まれる関連付けられた項目番号の間には、暗黙の結び付きがあります。これがテーブル検索の本質です。 詳細については方法 : Windows フォーム BindingSource コンポーネントを使用してルックアップ テーブルを作成する および方法 : Windows フォーム BindingSource コンポーネントを使用してルックアップ テーブルを作成する および方法 : Windows フォーム BindingSource コンポーネントを使用してルックアップ テーブルを作成する および方法 : Windows フォーム BindingSource コンポーネントを使用してルックアップ テーブルを作成する. |
参照
処理手順
方法 : データ ソースに Windows フォーム DataGrid コントロールをバインドする