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