BindingSource コンポーネントの概要

BindingSource コンポーネントは、基になるデータ ソースにコントロールをバインドするプロセスを簡略化するように設計されています。 BindingSource コンポーネントは、他のコントロールのバインド先となるパイプおよびデータ ソースの両方の働きをします。 このコンポーネントは、フォームのデータ接続を抽象化し、基になるデータ リストにコマンドを渡します。 また、コンポーネントに直接データを追加することにより、コンポーネント自体がデータ ソースとして機能するようにすることができます。

媒介手段としての BindingSource コンポーネント

BindingSource コンポーネントは、フォーム上のコントロールの一部またはすべてのデータ ソースとして機能します。 Visual Studio では、BindingSourceDataBindings プロパティを使用してコントロールにバインドします。このプロパティは [プロパティ] ウィンドウからアクセスできます。 「方法 : デザイナーを使用して Windows フォーム コントロールを BindingSource コンポーネントにバインドする」も参照してください。

BindingSource コンポーネントは、単純なデータ ソース (オブジェクトの 1 つのプロパティや、ArrayList のような基本的なコレクションなど) と複雑なデータ ソース (データベース テーブルなど) の両方にバインドできます。 BindingSource コンポーネントは、バインディングおよび現在位置管理サービスを提供する媒介手段として機能します。 デザイン時や実行時には、DataSource プロパティと DataMember プロパティをそれぞれデータベースとテーブルに設定して BindingSource コンポーネントを複雑なデータ ソースにバインドできます。 既存のデータ バインディング アーキテクチャにおける BindingSource コンポーネントの位置づけを次の図に示します。

Binding Source and Data Binding Architecture

Note

デザイン時には、特定のアクション (データ ウィンドウから空白のフォームへのデータベース テーブルのドラッグなど) によって BindingSource コンポーネントが作成され、基になるデータ ソースにバインドされ、データ バインディングに対応したコントロールが追加されます。これらはすべて 1 つの操作によって実行されます。 「Visual Studio でのデータへの Windows フォーム コントロールのバインド」も参照してください。

データソースとしての BindingSource コンポーネント

最初にバインド先のリストを指定せずに BindingSource コンポーネントに項目を追加し始めると、このコンポーネントはリスト形式のデータ ソースとして動作し、追加した項目を受け入れます。

また、AddingNew イベントを使用して、カスタムの "AddNew" 機能を提供するコードを記述することもできます。このイベントは、AddNew メソッドが呼び出された時点で、リストに項目が追加される前に発生します。 詳細については、「BindingSource コンポーネント アーキテクチャ」を参照してください。

フォーム上でデータのナビゲーションを実行する必要のあるユーザーに対しては、BindingNavigator コンポーネントが BindingSource コンポーネントと連携することにより、データのナビゲーションと操作が提供されます。 詳細については、「BindingNavigator コントロール」を参照してください。

データの操作

BindingSource は、すべてのバインディングの CurrencyManager として動作するため、データ ソースに関する現在位置情報へのアクセスを提供します。 基になるデータへのアクセスおよび操作のために BindingSource コンポーネントが提供するメンバーを次の表に示します。

メンバー 説明
Current プロパティ データソースの現在の項目を取得します。
Position プロパティ 基になるリストでの現在の位置を取得または設定します。
List プロパティ DataSourceDataMember の評価であるリストを取得します。 DataMember が設定されていないときは、DataSource によって指定されたリストを返します。
Insert メソッド リスト内の指定されたインデックス位置に項目を挿入します。
RemoveCurrent メソッド リストから現在の項目を削除します。
EndEdit メソッド 基になるデータ ソースに保留中の変更を適用します。
CancelEdit メソッド 現在の編集操作をキャンセルします。
AddNew メソッド 基になるリストに新しい項目を追加します。 データ ソースが IBindingList を実装しており、AddingNew イベントから項目が返された場合は、その項目を追加します。 それ以外の場合、リストの AddNew メソッドに要求が渡されます。 基になるリストが IBindingList でない場合は、パブリックのパラメーターなしのコンストラクターを使用して項目が自動的に作成されます。

並べ替えとフィルター処理

通常、一定の順序で並べられた、またはフィルター処理されたデータ ソースのビューを使用します。 BindingSource コンポーネント データ ソースが提供するメンバーを次の表に示します。

メンバー 説明
Sort プロパティ データ ソースが IBindingList である場合は、並べ替えに使用する列名と並べ替え順序情報を取得または設定します。 データ ソースが IBindingListView であり、高度な並べ替えをサポートしている場合は、並べ替えに使用する複数の列名と並べ替え順序情報を取得します。
Filter プロパティ データ ソースが IBindingListView である場合は、表示する行のフィルター処理に使用する式を取得または設定します。

関連項目