1
在System.Windows.Forms.dll中發生類型'System.InvalidOperationException'的異常,但未在用戶代碼中處理 附加信息:行不能以編程方式刪除,除非DataGridView是數據綁定到IBindingList的支持更改通知並允許刪除Winforms datagridview:拖放導致錯誤
這是我的我的數據綁定到datagridview的:
IEnumerable<myTable> query = from p in db.myTables select p;
testList = query.ToList();
dataGridView1.DataSource = testList;
這是我用拖&降行:
private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
if (dataGridView1.SelectedRows.Count == 1)
{
if (e.Button == MouseButtons.Left)
{
rw = dataGridView1.SelectedRows[0];
rowIndexFromMouseDown = dataGridView1.SelectedRows[0].Index;
dataGridView1.DoDragDrop(rw, DragDropEffects.Move);
}
}
}
private void dataGridView1_DragEnter(object sender, DragEventArgs e)
{
if (dataGridView1.SelectedRows.Count > 0)
{
e.Effect = DragDropEffects.Move;
}
}
private void dataGridView1_DragDrop(object sender, DragEventArgs e)
{
int rowIndexOfItemUnderMouseToDrop;
Point clientPoint = dataGridView1.PointToClient(new Point(e.X, e.Y));
rowIndexOfItemUnderMouseToDrop = dataGridView1.HitTest(clientPoint.X, clientPoint.Y).RowIndex;
if (e.Effect == DragDropEffects.Move)
{
dataGridView1.Rows.RemoveAt(rowIndexFromMouseDown);
dataGridView1.Rows.Insert(rowIndexOfItemUnderMouseToDrop, rw);
}
}
每當我試圖拖動&下降時,拖動確定,但下降導致我上面提到的錯誤,如果可能的話我不想使用的BindingList,因爲如果我使用它,我將不得不做出很多的變化。 如果你能幫助我,我會很大膽。
如果要雙向綁定,則需要使用綁定列表。 – SpaceSteak
我不知道該怎麼做。 這db.EFESRDP0s選擇p不工作 '的IEnumerable查詢=從磷; testList = query.ToList(); VAR列表=新的BindingList (testList); dataGridView1.DataSource =名單;' –
BarisY
不受限制,只要我知道,但你可以嘗試做一些研究一種替代。 – SpaceSteak