通過設置DataSource屬性,我可以直接將DataGridView控件綁定到業務對象的綁定列表。我的業務對象實現INotifyPropertyChanged,因此當新項目添加到綁定列表或現有更新項目時,DGV會得到更新。將綁定列表<business obj>用作數據源的綁定源的好處是什麼?
關於處理單個記錄,我可以將我的業務對象綁定到文本框和其他相關控件。
我還可以從獲得的BindingList並創建一個CustomBindingList類來實現IBindable必要方法,如下面的鏈接解釋說: http://msdn.microsoft.com/en-us/library/aa480736.aspx
另外,我看到有人建議使用的BindingSource。 BindingSource的Datasource是業務對象,DGV的DataSource是BindingSource。
在任何情況下,使其基於一個BindingSource的不給我:
- 過濾(過濾器不工作)。實施需要由我提供。
- 排序和搜索不起作用。實施需要由我提供。
那麼,爲什麼推薦使用BindingSource方法?
更寬的圖片: 剛剛接觸OOPS概念和C#。使用數據庫應用程序。的WinForms。到目前爲止只使用了DataSet/DataTable方法。現在試圖創建和使用我自己的自定義類。
通常具有主/明細表格。當我點擊DGV中的Detail行時,我想在單獨的窗口中編輯該記錄。所以我需要在DGV中的那一行表示的列表項上獲得一個句柄。試圖找到一個解決方案已經給我帶來了這一點和這種懷疑。
鑑於我想要做什麼,哪種方法更好,爲什麼?
這裏的一些指針會非常有幫助,因爲我對此很陌生。
[C#DataGridView.DataSource使用BindingSource而不是]之間的可能重複(http://stackoverflow.com/questions/4433281/c-sharp-datagridview-datasource-difference-between-using-bindingsource-and-not ) – 2016-06-09 10:09:28