プロプログラマ

プログラマーを職業としてます。 Flex,Air,C#,Oracle,HTML+JSの言語ノウハウを中心に情報発信していきます

[C#] DataGridViewにバインドするリストにはBindingListを使用すると良い

DataGridViewにはデータベースから取得したDataTable以外にも任意のカスタムクラスの配列やリストもバインドすることができてとても便利です。

ただ、Listをバインドした場合、例えばListにオブジェクトを追加しても、DataGridViewにはその値はすぐに反映されません。
一度DataSourceをnullにして再度割り当てれば反映されますが、色々な設定も元に戻ってしまい面倒です。
また、Listをバインドした場合は、DataGridView上での行の追加や削除操作も行えません。

そんな時には、バインドするのをListではなく、BindingListというリストにすると、変更内容がリアルタイムに反映されるようになります。

(リアルタイムに行うためにはバインドする対象がIBindingListというインタフェースを実装している必要があるようです。)

他にもDataGridViewのBindingSourceを使う方法もあるようですが、ListをBindingListに変更しても問題ないようであれば、それが一番面倒がないのではないかと思います。

 

== ランキングに参加しています。ぜひクリックお願いします ==

プログラム ブログランキングへ
にほんブログ村 IT技術ブログへ
にほんブログ村

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください