为什么不更新DataGridView单元格?
我已经成功地将我的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