データ連結と Windows フォームData Binding and Windows Forms

Windows フォームでは、従来のデータ ソースだけでなく、データを含むほぼすべての構造にバインドできます。In Windows Forms, you can bind to not just traditional data sources, but also to almost any structure that contains data. 実行時に計算する値、ファイルから読み取る値、または他のコントロールの値から派生する値の配列にバインドできます。You can bind to an array of values that you calculate at run time, read from a file, or derive from the values of other controls.

さらに、任意のコントロールのプロパティをデータ ソースにバインドできます。In addition, you can bind any property of any control to the data source. 従来のデータ バインディングでは、通常は Text コントロールの TextBox プロパティなどの表示プロパティをデータ ソースにバインドします。In traditional data binding, you typically bind the display property—for example, the Text property of a TextBox control—to the data source. .NET Framework にもバインディングによってその他のプロパティを設定するオプションがあります。With the .NET Framework, you also have the option of setting other properties through binding as well. バインディングを使用して、次のタスクを実行できます。You might use binding to perform the following tasks:

  • イメージ コントロールのグラフィックの設定。Setting the graphic of an image control.

  • 1 つ以上のコントロールの背景色の設定。Setting the background color of one or more controls.

  • コントロール サイズの設定。Setting the size of controls.

基本的には、データ バインディングは、フォーム上の任意のコントロールの実行時にアクセス可能なプロパティを自動的に設定する方法です。Essentially, data binding is an automatic way of setting any run-time accessible property of any control on a form.

データ バインディングの種類Types of Data Binding

Windows フォームでは、単純バインディングと複合バインディングの 2 種類のデータ バインディングを利用できます。Windows Forms can take advantage of two types of data binding: simple binding and complex binding. それぞれに異なる利点があります。Each offers different advantages.

データ バインディングの種類Type of data binding 説明Description
単純データ バインディングSimple data binding データセット テーブル内の列の値など、1 つのデータ要素にバインドするコントロールの機能。The ability of a control to bind to a single data element, such as a value in a column in a dataset table. これは、TextBox コントロールや Label コントロールなどのコントロールで一般的に使用される種類のバインディングです。これらのコントロールでは通常、1 つの値のみが表示されます。This is the type of binding typical for controls such as a TextBox control or Label control, which are controls that typically only displays a single value. 実際には、コントロールのどのプロパティもデータベース内のフィールドにバインドできます。In fact, any property on a control can be bound to a field in a database. Visual Studio でこの機能の広範なサポートがあります。There is extensive support for this feature in Visual Studio.

詳細については次を参照してください:For more information, see:

- データ バインディングに関連するインターフェイス- Interfaces Related to Data Binding
- 方法: Windows フォームでデータを移動します。- How to: Navigate Data in Windows Forms
- 方法: Windows フォームに単純バインド コントロールを作成する- How to: Create a Simple-Bound Control on a Windows Form
複合データ バインディングComplex data binding 複数のデータ要素、一般的にはデータベース内の複数のレコードにバインドするコントロールの機能。The ability of a control to bind to more than one data element, typically more than one record in a database. 複合バインディングは、リストベース バインディングとも呼ばれます。Complex binding is also called list-based binding. 複合バインディングをサポートするコントロールの例には、DataGridViewListBox、および ComboBox の各コントロールがあります。Examples of controls that support complex binding are the DataGridView, ListBox, and ComboBox controls. 複合データ バインディングの例は、次を参照してください。方法。Windows フォームの ComboBox または ListBox コントロールをデータにバインドします。For an example of complex data binding, see How to: Bind a Windows Forms ComboBox or ListBox Control to Data.

BindingSource コンポーネントBindingSource Component

データ バインディングを単純化するために、Windows フォームでは、データ ソースを BindingSource コンポーネントにバインドしてから、コントロールを BindingSource にバインドできます。To simplify data binding, Windows Forms enables you to bind a data source to the BindingSource component and then bind controls to the BindingSource. BindingSource は、単純バインディングまたは複合バインディングのシナリオで使用できます。You can use the BindingSource in simple or complex binding scenarios. いずれの場合も、BindingSource はデータ ソースとバインドされたコントロールの間の媒介として機能し、変更通知、通貨管理などのサービスを提供します。In either case, the BindingSource acts as an intermediary between the data source and bound controls providing change notification currency management and other services.

データ バインディングを使用する一般的なシナリオCommon Scenarios That Employ Data Binding

ほぼすべての商用アプリケーションで、通常はデータ バインディングによってある種類のデータ ソースから別の種類のデータ ソースに読み取られた情報を使用します。Nearly every commercial application uses information read from data sources of one type or another, usually through data binding. 次のリストに、データの表示および操作の方法としてデータ バインディングを使用する最も一般的なシナリオをいくつか示します。The following list shows a few of the most common scenarios that utilize data binding as the method of data presentation and manipulation.

シナリオScenario 説明Description
レポートReporting レポートは、印刷された文書でデータを表示および集計する柔軟な方法を提供します。Reports provide a flexible way for you to display and summarize your data in a printed document. データ ソースの選択したコンテンツを画面またはプリンターに出力するレポートを作成することは、非常に一般的に行われます。It is very common to create a report that prints selected contents of a data source either to the screen or to a printer. 一般的なレポートには、リスト、請求書、および概要などがあります。Common reports include lists, invoices, and summaries. 通常、項目はリストの列として並べられ、サブ項目が各リスト項目に分類されますが、データに最も適したレイアウトをユーザーが選択する必要があります。Items are usually formatted into columns of lists, with sub-items organized under each list item, but you should choose the layout that best suits the data.
データ エントリData entry 大量の関連データを入力したり、ユーザーに情報の入力を求めたりする場合は、データ エントリ フォームを使用する方法が一般的です。A common way to enter large amounts of related data or to prompt users for information is through a data entry form. ユーザーは、テキスト ボックス、オプション ボタン、ドロップダウン リスト、およびチェック ボックスを使用して、情報を入力したり、オプションを選択したりできます。Users can enter information or select choices using text boxes, option buttons, drop-down lists, and check boxes. 情報は送信され、入力された情報に基づく構造を持つデータベースに格納されます。Information is then submitted and stored in a database, whose structure is based on the information entered.
マスター/詳細リレーションシップMaster/detail relationship マスター/詳細アプリケーションは、関連データを表現するための形式の 1 つです。A master/detail application is one format for looking at related data. 具体的には、2 つのデータ テーブルと、それらを結合する関係があります。典型的なビジネスの例では、"顧客" テーブルと "注文" テーブルがあり、それらの間には、顧客とそれに対応する注文を結合する関係があります。Specifically, there are two tables of data with a relation connecting them—in the classic business example, a "Customers" table and an "Orders" table with a relationship between them linking customers and their respective orders. 2 つの Windows フォームでマスター/詳細アプリケーションの作成の詳細についてはDataGridViewコントロールを参照してください方法。2 つの Windows フォーム DataGridView コントロールを使用してマスター/詳細フォームを作成します。For more information about creating a master/detail application with two Windows Forms DataGridView controls, see How to: Create a Master/Detail Form Using Two Windows Forms DataGridView Controls
ルックアップ テーブルLookup Table 別の一般的なデータ表示/操作シナリオに、テーブル ルックアップがあります。Another common data presentation/manipulation scenario is the table lookup. 多くの場合、より大きなデータ表示の一部として、ComboBox コントロールを使用してデータを表示および操作します。Often, as part of a larger data display, a ComboBox control is used to display and manipulate data. 重要な点は、ComboBox コントロールで表示されるデータは、データベースに書き込まれるデータとは異なることです。The key is that the data displayed in the ComboBox control is different than the data written to the database. たとえば、食料品店から入手できる項目を表示する ComboBox コントロールがあり、製品の名前 (パン、牛乳、卵) を表示するとします。For example, if you have a ComboBox control displaying the items available from a grocery store, you would probably like to see the names of the products (bread, milk, eggs). しかし、データベース内での情報の取得を容易にしたり、データベースを正規化したりするには、ある注文の特定の項目に関する情報を項目番号 (#501、#603 など) で格納する必要がある場合があります。However, to ease information retrieval within the database and for database normalization, you would probably store the information for the specific items of a given order as item numbers (#501, #603, and so on). そのため、フォームの ComboBox コントロールにある食料品項目の "わかりやすい名前" と、注文に表示される該当する項目番号との間には暗黙的なつながりがあります。Thus, there is an implicit connection between the "friendly name" of the grocery item in the ComboBox control on your form and the related item number that is present in an order. これがテーブル ルックアップの本質です。This is the essence of a table lookup. 詳細については、「方法 :Windows フォーム BindingSource コンポーネントを使用するルックアップ テーブルを作成です。For more information, see How to: Create a Lookup Table with the Windows Forms BindingSource Component.

関連項目See also