WindowsフォームアプリケーションでDataGridView
に人のリストを表示したいとします。サービスレイヤーからPersonオブジェクトのリスト(たとえば、IList<Person>
)を返すようにします。私はリストの変更をDataGridView
に反映させ、その逆も欲しい。私の理解では、BindingSource
を使用すると、DataGridView
での作業が容易になります。双方向のデータバインディングが機能するために私の質問は、私は必要なのですか、次のとおりです。WinForms DataBindingにBindingSourceとBindingListが必要ですか?
//pseudo code
BindingSource.DataSource = IBindingList<Person>
または私が行うことができます。
BindingSource.DataSource = IList<Person>
違いは何ですか?私のメイクがリストに変更された場合、DataGridView
はどちらかの方法で更新されますか? BindingList
を使用する必要がある場合は、私のサービスレイヤーからBindingList
を返すために少し依存しているようです(依存関係を作成しているため)。
Microsoftが(備考セクション)BindingList
http://msdn.microsoft.com/en-us/library/ms132679.aspxでこう述べています。
「しかし、典型的な解決策 プログラマは など
BindingSource
として、 は、データバインディング機能を提供しているクラスを使用しますが、代わりにBindingList<T>
を直接使用してください。
私の混乱の一部は、BindingSourceを使用している限り、双方向データバインディングを取得するためにBindingListを使用する必要がないと示唆しているようでした。しかし、BindingSourceを使ってリストを変更するだけであれば、あなたが言っていることは間違いないと思います。 – User