遍历选中行,从数据库和内存中删除选中行对象,如下所示:
foreach (var row in dataDictGrid.Selected.Rows)
{
MDataDictionary data = row.ListObject as MDataDictionary;
if (data != null && data.ObjectID > 0)
{
_bslDataDict.DeleteDataDictionary(data);
row.Delete(false); //陷阱!破坏集合
}
}
正确做法:
//先从数据库中删除
foreach (var row in dataDictGrid.Selected.Rows)
{
MDataDictionary data = row.ListObject as MDataDictionary;
if (data != null && data.ObjectID > 0)
{
_bslDataDict.DeleteDataDictionary(data);
}
}
//再从内存中一次性删除选中行对象的list
dataDictGrid.DeleteSelectedRows(false);