DataGridViewにEntity/DTO入りのListを繋げてSort/Filterしたいので、ライブラリ探し&サンプル作成

S2Dao.NETを使ってて悩んだのはここ。
せっかくモデルクラスに閉じ込めて固くしたデータを、表示/編集のためだけにDataTableに展開するのは勿体ない。

.NETフレームワークには、ソート/フィルターするためのIBindingListViewインターフェースはあるが、これを実装したクラスはDataViewだけ。そしてDataViewはDataTable専用。標準フレームワークにDataObjectViewとか用意しといて欲しいぞ。

定石ライブラリはあるかと探したが見つからず。フル装備っぽいBindingListViewというクラスを提供するライブラリもある。が、ちょっと大きいか。
http://blw.sourceforge.net/


以下は最低限の機能を実装したサンプルのよう。
http://lemoncake.wordpress.com/2007/06/13/filtering-on-a-list-bindingsource/
これをVB.NET用に移植してみた。このままでは実用にはならない(BindingListから継承してるのでItems周りの制御を奪うのが大変。IBindingListを自分で実装すべきなんだろう)がサンプルとして。

続きを読む