我已成功将DataGridView绑定到列表中。但是,当我以编程方式更改列表中某个对象的某些属性时,网格不会刷新。如果我单击单元格(或最小化然后最大化表单),则刷新显示的值。
我读here我应该使用BindingList。我使用的列表是一个不实现IBindingList的接口类型。但是,用于初始化列表的具体类型确实继承了BindingList。有什么想法吗?
答案 0 :(得分:9)
您的列表必须实现IBindingList
(或BindingList
),您的对象必须实现INotifyPropertyChanged
。这两个条件都是DataGridView正确绑定所必需的。
因此,如果您的数据源是MyList<MyClass>
,MyList
必须实现IBindingList
,而MyClass
必须是INotifyPropertyChanged
。
以下是一个简洁的例子:http://crazorsharp.blogspot.com/2009/06/inotifypropertychanged-how-to-and-when.html