以编程方式从网格视图中删除行
本文关键字:视图 删除行 网格 编程 方式 | 更新日期: 2023-09-27 18:13:06
我有gridview,它的数据源是list<string>
,我添加了一个复选框列来选择我想要删除的行,然后我按下删除。
attachdatagrid.DataSource = ConceptProperties.conceptsattachmentsfilename[mouseOverIndex].Select(x => new { FileName = x }).ToList();
问题是我的
显示数据表格编辑模式
属性是EditOnKeystroke,当我写
if ((bool)dr.Cells[0].Value != false)
{
found = true;
ConceptProperties.conceptsattachments[mouseeditIndex].RemoveAt(dr.Index);
ConceptProperties.conceptsattachmentsfilename[mouseeditIndex].RemoveAt(dr.Index);
attachdatagrid.Rows.RemoveAt(dr.Index);
}
I got exception:
行不能被编程地删除,除非DataGridView被删除数据绑定到IBindingList,该列表支持更改通知和允许删除。
如何删除行?
您最好将网格绑定到绑定源并对其(绑定源)执行所有操作,而不是列表本身。您可以将绑定源组件放到表单中,然后将其数据源设置为列表,并将网格的数据源设置为绑定源。
IList不支持更改通知。
在您的例子中,应该足以从列表中删除所需的数据,并且当它绑定到网格时,列表中的更改将自动传播到UI控件上。
换句话说:不要调用attachdatagrid.Rows.RemoveAt(dr.Index)