一个Winform程序使用List<T>泛型数据源对DataGridView进行数据绑定,实例代码:
List<UIClass> ucs = new List<UIClass>();
ucs.Add(...);
ucs.Add(...);
ucs.Add(...);
this.dgvList.DataSource = ucs;
在进行DataGridView删除操作时是使用List<T>.Remove(T) 方法移除对绑定源中数据对象时,代码如下:
for (int i = ucs.Count - 1; i >= 0; i--)
{
if(condition)
{
//
// 移除符合条件的一个item对象
//
ucs.Remove(ucs[i]);
}
}
但是在调试时,产生如下错误如图:
查找原因,可能是因为DataGridView已经绑定List<T>对象,不能对已绑定到DataGridView对象的数据源进行Remove操作,否则会引起上图错误,试着再删除对象之前移除绑定内容,错误消失。