[C#] DataGridViewにバインドするリストにはBindingListを使用すると良い
DataGridViewにはデータベースから取得したDataTable以外にも任意のカスタムクラスの配列やリストもバインドすることができてとても便利です。
ただ、Listをバインドした場合、例えばListにオブジェクトを追加しても、DataGridViewにはその値はすぐに反映されません。
一度DataSourceをnullにして再度割り当てれば反映されますが、色々な設定も元に戻ってしまい面倒です。
また、Listをバインドした場合は、DataGridView上での行の追加や削除操作も行えません。
そんな時には、バインドするのをListではなく、BindingListというリストにすると、変更内容がリアルタイムに反映されるようになります。
(リアルタイムに行うためにはバインドする対象がIBindingListというインタフェースを実装している必要があるようです。)
他にもDataGridViewのBindingSourceを使う方法もあるようですが、ListをBindingListに変更しても問題ないようであれば、それが一番面倒がないのではないかと思います。
== ランキングに参加しています。ぜひクリックお願いします ==
Googleで「マネージャー」を画像検索すると癒される件 [C#] [DataGridView] すべて選択する/解除する