我有gridview,它的數據源是list<string>
,我添加了一個複選框列來選擇我想刪除的行然後我按刪除。從網格視圖編程刪除行
attachdatagrid.DataSource = ConceptProperties.conceptsattachmentsfilename[mouseOverIndex].Select(x => new { FileName = x }).ToList();
的問題是我的
gridview的編輯模式
性質是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);
}
我得到異常:
除非DataGridView是 數據綁定到支持更改通知的IBindingList並且允許刪除 ,否則無法以編程方式刪除行。
我該如何刪除該行?
我試過這個,但網格沒有受到影響 – kartal
@salamonti:你是否嘗試重新分配改變的列表?我看到你使用了ToList(),這個方法創建了原始的COPY,所以你所做的改變不會影響實際綁定到控件的列表。重新分配給DataGrid,就像提供的代碼的第一行一樣。 – Tigran
,但是如果我有多行檢查行,它將只刪除第一行,因爲它會再次初始化網格數據源,因此它們將被取消選中。 – kartal