次の方法で共有


.NET Framework アプリケーションのデータに Windows フォーム コントロールをバインドする

DataSet クラスと関連クラスは、アプリケーションがデータベースから切断されている間にアプリケーションがメモリ内のデータを操作できるようにする、2000 年代初頭のレガシ .NET Framework テクノロジです。 このテクノロジは、ユーザーがデータを変更し、変更をデータベースに保持できるアプリに特に役立ちます。 データセットは実証済みの成功したテクノロジですが、新しい .NET アプリケーションには Entity Framework Core を使用することをお勧めします。 Entity Framework は、オブジェクト モデルとして表形式データを操作するより自然な方法を提供し、よりシンプルなプログラミング インターフェイスを備えています。

Windows フォームにデータをバインドすることで、アプリケーションのユーザーにデータを表示できます。 これらのデータ バインド コントロールを作成するには、[ データ ソース] ウィンドウから Visual Studio の Windows フォーム デザイナーに項目をドラッグします。

データ ソースのドラッグ操作

ヒント

[データ ソース] ウィンドウが表示されていない場合は、[表示]、[その他のウィンドウ>データ ソース>を選択するか、Shift キー+Alt+D キーを押して開くことができます。 [データ ソース] ウィンドウを表示するには、Visual Studio でプロジェクトを開く必要があります。

項目をドラッグする前に、バインド先のコントロールの種類を設定できます。 テーブル自体を選択するか、個別の列を選択するかによって、異なる値が表示されます。 カスタム値を設定することもできます。 テーブルの場合、 詳細 は、各列が個別のコントロールにバインドされることを意味します。

データ ソースを DataGridView にバインドする

BindingSource および BindingNavigator コントロール

BindingSource コンポーネントは、2 つの目的を果たします。 まず、コントロールをデータにバインドするときに抽象化レイヤーを提供します。 フォーム上のコントロールは、データ ソースに直接ではなく、 BindingSource コンポーネントにバインドされます。 次に、オブジェクトのコレクションを管理できます。 BindingSourceに型を追加すると、その型の一覧が作成されます。

BindingSource コンポーネントの詳細については、以下を参照してください。

BindingNavigator コントロールは、Windows アプリケーションによって表示されるデータ間を移動するためのユーザー インターフェイスを提供します。

DataGridView コントロール内のデータにバインドする

DataGridView コントロールの場合、テーブル全体がその 1 つのコントロールにバインドされます。 DataGridView をフォームにドラッグすると、レコードを移動するためのツール ストリップ (BindingNavigator) も表示されます。 DataSetTableAdapterBindingSource、およびBindingNavigatorがコンポーネント トレイに表示されます。 次の図では、Customers テーブルに Orders テーブルとのリレーションシップがあるため、 TableAdapterManager も追加されています。 これらの変数はすべて、自動生成されたコードで、フォーム クラスのプライベート メンバーとして宣言されます。 DataGridView を入力するための自動生成されたコードは、Form_Load イベント ハンドラーにあります。 データベースを更新するためにデータを保存するコードは、BindingNavigatorSave イベント ハンドラーにあります。 必要に応じて、このコードを移動または変更できます。

BindingNavigator を使用した GridView

DataGridViewBindingNavigator の動作をカスタマイズするには、それぞれの右上隅にあるスマート タグをクリックします。

DataGridView とバインド ナビゲーターのスマート タグ

アプリケーションに必要なコントロールが [ データ ソース] ウィンドウ内から使用できない場合は、コントロールを追加できます。 詳細については、「 データ ソース] ウィンドウにカスタム コントロールを追加する」を参照してください。

[ データ ソース] ウィンドウからフォーム上のコントロールに項目をドラッグして、コントロールをデータにバインドすることもできます。 データに既にバインドされているコントロールのデータ バインディングは、最後にドラッグされた項目にリセットされます。 有効なドロップ ターゲットにするには、[ データ ソース] ウィンドウからドラッグした項目の基になるデータ型をコントロールに表示できる必要があります。 たとえば、CheckBoxは日付を表示できないため、DateTimeのデータ型を持つ項目をCheckBoxにドラッグすることは無効です。

個別のコントロールにデータをバインドする

データ ソースを Details にバインドすると、データセット内の各列は個別のコントロールにバインドされます。

データ ソースを詳細にバインドする

Von Bedeutung

前の図では、Orders テーブルからではなく、Customers テーブルの Orders プロパティからドラッグしていることに注意してください。 Customer.Orders プロパティにバインドすると、DataGridView で行われたナビゲーション コマンドが詳細コントロールにすぐに反映されます。 Orders テーブルからドラッグしても、コントロールはデータセットにバインドされますが、 DataGridView と同期されません。

次の図は、Customers テーブルの Orders プロパティが [データ ソース] ウィンドウの [詳細 ] にバインドされた後にフォームに追加される既定の データ バインド コントロールを示しています。

詳細にバインドされた Orders テーブル

また、各コントロールにはスマート タグがあることにも注意してください。 このタグを使用すると、そのコントロールにのみ適用されるカスタマイズが有効になります。