2011-10-11 185 views
8

我已經成功地將我的DataGridView綁定到列表。但是,當我編程改變列表中某個對象的某些屬性時,網格不刷新。如果我單擊單元格(或最小化然後最大化表單),則顯示的值將刷新。爲什麼不更新DataGridView單元格?

我讀here,我應該使用BindingList。我使用的列表是一個沒有實現IBindingList的接口類型。但是,用來初始化列表的具體類型是從BindingList繼承的。有任何想法嗎?

+0

你的平臺是什麼? WPF?的WinForms? Silverlight的? (等) –

+0

對不起,它是Winforms。 – bsh152s

回答

9

您的列表必須執行IBindingList(或者是BindingList),並且您的對象必須執行INotifyPropertyChanged。這兩個條件都需要您的DataGridView正確綁定。

所以,如果您的數據源是,例如,MyList<MyClass>MyList必須實現IBindingListMyClass必須implmenent INotifyPropertyChanged

這裏是一個整潔的例子:http://crazorsharp.blogspot.com/2009/06/inotifypropertychanged-how-to-and-when.html

+0

我使用的代碼是實現INotifyPropertyChanged,列表是一個綁定列表。但是,正在設置的標誌關閉了通知。這個答案幫助我弄清楚了這一點。 – bsh152s

相關問題