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