我想在Windows窗體應用程序中顯示DataGridView
中的人員列表。我希望我的服務層返回一個Person對象列表(例如,IList<Person>
)。我希望列表中的更改反映在DataGridView
之間,反之亦然。我的理解是,使用BindingSource
有助於與DataGridView
一起工作。我的問題是對於數據綁定雙向工作,我需要:我是否需要BindingSource和BindingList for WinForms DataBinding?
//pseudo code
BindingSource.DataSource = IBindingList<Person>
或者我可以這樣做:
BindingSource.DataSource = IList<Person>
有什麼區別?如果我對列表進行更改,DataGridView
會以哪種方式進行更新?如果我不得不使用BindingList
,那麼從我的服務層返回BindingList
似乎有點過分(因爲創建依賴關係),有沒有辦法解決這個問題?
微軟稱BindingList
的(備註部分) http://msdn.microsoft.com/en-us/library/ms132679.aspx:
「然而,典型的解決方案 程序員使用類 提供數據綁定功能, 如
BindingSource
,而不是 直接使用BindingList<T>
「。
部分原因是,有些人似乎認爲你並不需要使用的BindingList獲得雙向綁定,只要你使用的是BindingSource的。但我想你所說的只有通過BindingSource修改列表纔是真實的。 – User 2011-01-13 14:48:51