解决删除DataGridView中数据引发的“DataGridView Default Error Dialog 错误”

一个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]);
}
}

但是在调试时,产生如下错误如图:

image

查找原因,可能是因为DataGridView已经绑定List<T>对象,不能对已绑定到DataGridView对象的数据源进行Remove操作,否则会引起上图错误,试着再删除对象之前移除绑定内容,错误消失。

原文地址:https://www.cnblogs.com/bobbychencj/p/1893636.html