BindingSourceへエンティティをバインドする

BindingSourceへエンティティオブジェクトなどをバインドするときに嵌ったのでメモ。

これまでは主にBindingSouceへバインドするもはIListを実装しているかDataTableが多かったためBindingSource.DataSourceへバインドすることばかりでした。今回IDataErrorInfoを実装したエンティティオブジェクトをバインドしようとBindingSource.DataSourceへセットしたところ、どうにもこうにもデータがバインドされないではないですか。DataSourceUpdateModeをOnValidateからOnPropertyChangedへ変更してみても全く反応なし…。

せっかくUnitTestがしやすいようにエラーロジックをエンティティクラスに分離するというすばらしい方法を知ったのにと落胆しながらBindingSourceのmsdnを確認していたところふと思い出しました。BindingSource.Addメソッドを!

そうですよ。BindingSource.Addメソッドを使用すれば内部で管理しているBindingSourceのリストオブジェクトへエンティティを追加できるではないですか!

と、これでうまくいったわけですが、何ともこんなことに気づかない自分が恥ずかしいです。恥ずかしさもありますがきっとまた同じことで嵌ると思うのでメモしておきますφ(.. )