A List<>は、特定のタイプのアイテムの、自動的にサイズ変更される配列であり、いくつかのヘルパー関数(例:ソート)を備えています。これは単なるデータであり、モデル内のオブジェクトのセットに対して操作を実行するために使用する可能性があります。
A BindingList<>は、型付きリストまたはコレクションのラッパーであり、IBindingListインターフェースを実装します。これは、双方向データバインディングをサポートする標準インターフェースの1つです。これListChangedは、アイテムを追加、削除、または設定したときに発生するイベントを実装することによって機能します。バインドされたコントロールは、いつ表示を更新するかを知るために、このイベントをリッスンします。
BindingSourceのDataSourceをに設定するとList<>、内部的にが作成さBindingList<>れ、リストがラップされます。BindingList<>BindingSourceの外部でアクセスしたい場合は、リストを自分で事前にラップすることもできますが、それ以外はまったく同じです。から継承しBindingList<>て、アイテムを変更するときに特別な動作を実装することもできます。
IEditableObjectBindingSourceによって処理されます。バインドされたコントロールのデータを変更すると、実装オブジェクトのBeginEditが呼び出されます。次に、BindingSourceでEndEdit / CancelEditを呼び出すと、オブジェクトに渡されます。別の行に移動すると、EndEditも呼び出されます。