我已經成功地將我的DataGridView綁定到列表。但是,當我編程改變列表中某個對象的某些屬性時,網格不刷新。如果我單擊單元格(或最小化然後最大化表單),則顯示的值將刷新。爲什麼不更新DataGridView單元格?
我讀here,我應該使用BindingList。我使用的列表是一個沒有實現IBindingList的接口類型。但是,用來初始化列表的具體類型是從BindingList繼承的。有任何想法嗎?
我已經成功地將我的DataGridView綁定到列表。但是,當我編程改變列表中某個對象的某些屬性時,網格不刷新。如果我單擊單元格(或最小化然後最大化表單),則顯示的值將刷新。爲什麼不更新DataGridView單元格?
我讀here,我應該使用BindingList。我使用的列表是一個沒有實現IBindingList的接口類型。但是,用來初始化列表的具體類型是從BindingList繼承的。有任何想法嗎?
您的列表必須執行IBindingList
(或者是BindingList
),並且您的對象必須執行INotifyPropertyChanged
。這兩個條件都需要您的DataGridView正確綁定。
所以,如果您的數據源是,例如,MyList<MyClass>
,MyList
必須實現IBindingList
和MyClass
必須implmenent INotifyPropertyChanged
。
這裏是一個整潔的例子:http://crazorsharp.blogspot.com/2009/06/inotifypropertychanged-how-to-and-when.html
我使用的代碼是實現INotifyPropertyChanged,列表是一個綁定列表。但是,正在設置的標誌關閉了通知。這個答案幫助我弄清楚了這一點。 – bsh152s
你的平臺是什麼? WPF?的WinForms? Silverlight的? (等) –
對不起,它是Winforms。 – bsh152s