BindingSource コンポーネントの概要
BindingSource コンポーネントは、基になるデータ ソースにコントロールをバインドするプロセスを簡略化するように設計されています。 BindingSource コンポーネントは、コンジット、および他のコントロールがバインドするデータ ソースとして動作します。 このコンポーネントは、フォームのデータ接続を抽象化し、基になるデータ リストにコマンドを渡します。 また、コンポーネント自体がデータ ソースとして機能するように、直接データを追加できます。
媒介手段としての BindingSource コンポーネント
BindingSource コンポーネントは、フォーム上のコントロールの一部またはすべてのデータ ソースとして機能します。 Visual Studio では、BindingSource は、[プロパティ] ウィンドウからアクセスできる DataBindings プロパティを使用してコントロールにバインドできます。 詳細については 方法 : デザイナを使用して Windows フォーム コントロールを BindingSource コンポーネントにバインドする および 方法 : デザイナを使用して Windows フォーム コントロールを BindingSource コンポーネントにバインドする および 方法 : デザイナを使用して Windows フォーム コントロールを BindingSource コンポーネントにバインドする および 方法 : デザイナーを使用して Windows フォーム コントロールを BindingSource コンポーネントにバインドする.
BindingSource コンポーネントは、単純なデータ ソース (オブジェクトのシングル プロパティ、ArrayList のような基本的なコレクションなど) と複雑なデータ ソース (データベース テーブルなど) の両方にバインドできます。 BindingSource コンポーネントは、バインディングおよび伝達性管理サービスを提供する媒介手段として機能します。 デザイン時や実行時には、DataSource プロパティと DataMember プロパティをそれぞれデータベースとテーブルに設定して BindingSource コンポーネントを複雑なデータ ソースにバインドできます。 BindingSource コンポーネントの既存のデータ バインディング アーキテクチャにおける位置づけを次の図に示します。
注意
デザイン時の一部のアクション (データ ウィンドウから空白のフォームへのデータベース テーブルのドラッグなど) によって、BindingSource コンポーネントが作成され、基になるデータ ソースにバインドされ、データ バインディングに対応したコントロールが追加されます。これらはすべて 1 つの操作によって実行されます。 詳細については データの表示の概要 および データの表示の概要 および Visual Studio でのデータへの Windows フォーム コントロールのバインド および Visual Studio でのデータへの Windows フォーム コントロールのバインド.
データ ソースとしての BindingSource コンポーネント
最初にバインド先のリストを指定せずに BindingSource コンポーネントに項目を追加し始めると、このコンポーネントはリスト形式のデータ ソースとして動作し、追加した項目を受け入れます。
また、AddingNew イベントを使用して、カスタムの "AddNew" 機能を提供するコードを記述することもできます。このイベントは、リストに項目が追加される前に AddNew が呼び出されると発生します。 詳細については、「BindingSource コンポーネント アーキテクチャ」を参照してください。
Navigation
BindingNavigator コンポーネントは、BindingSource コンポーネントと連携して、フォーム上のデータを移動する必要があるユーザーがデータを移動および操作できるようにします。 詳細については、「BindingNavigator コントロール (Windows フォーム)」を参照してください。
データの操作
BindingSource は、すべてのバインディングの CurrencyManager として動作するため、データ ソースに関する伝達性情報および位置情報へのアクセスを提供します。 基になるデータへのアクセスおよび操作ができるように BindingSource コンポーネントが提供するメンバーを次の表に示します。
メンバー |
説明 |
---|---|
Current プロパティ |
データ ソースの現在の項目を取得します。 |
Position プロパティ |
基になるリストでの現在の位置を取得または設定します。 |
List プロパティ |
DataSource および DataMember の評価を含むリストを取得します。 DataMember が設定されていないときは、DataSource によって指定されたリストを返します。 |
Insert メソッド |
リスト内の指定されたインデックス位置に項目を挿入します。 |
RemoveCurrent メソッド |
リストから現在の項目を削除します。 |
EndEdit メソッド |
基になるデータ ソースに保留中の変更を適用します。 |
CancelEdit メソッド |
現在の編集操作をキャンセルします。 |
AddNew メソッド |
基になるリストに新しい項目を追加します。 データ ソースが IBindingList を実装し、AddingNew イベントから項目を返した場合は、その項目を追加します。 それ以外の場合は、リストの AddNew メソッドに要求が渡されます。 基になるリストが IBindingList でない場合は、既定のパブリック コンストラクターを使用して項目が自動的に作成されます。 |
並べ替えとフィルター処理
通常、一定の順序で並べられた、またはフィルター処理されたデータ ソースのビューを使用します。 BindingSource コンポーネント データ ソースが提供するメンバーを次の表に示します。
メンバー |
説明 |
---|---|
Sort プロパティ |
データ ソースが IBindingList である場合は、並べ替えに使用する列名と並べ替え順序情報を取得または設定します。 データ ソースが IBindingListView であり、高度な並べ替えをサポートしている場合は、並べ替えに使用する複数の列名と並べ替え順序情報を取得します。 |
Filter プロパティ |
データ ソースが IBindingListView である場合は、表示する行のフィルター処理に使用する式を取得または設定します。 |