1

我已经使用 dbcontext 为实体设置了绑定 dgv。工作正常。这些行显示在 dgv 中,我可以使用 SaveChanges 修改单元格和更新。但是,如果我尝试在 dgv 中添加新行,它不会被保存。如果 dgv 绑定到实体不应该自动添加新行还是我必须做一些事情来添加它?什么?请提供示例代码。接下来我将尝试从 dgv 中删除。我会有类似的问题吗?我怎样才能让它发挥作用?我在互联网上搜索了示例,但它们只限于绑定实体并且不包括添加或删除。任何帮助,将不胜感激。

4

2 回答 2

0

我发现了几个具有类似问题的链接,其中一个是:

DataGridView AllowUserToAddRow 属性不起作用

似乎使用 .ToList 搞乱了绑定。就我而言,我使用 MyContext.MyTable.Local.ToList 作为源。当我删除 .ToList 时,一切正常。也许有人可以更详细地告诉我们为什么这样有效???

感谢你们中最先发现这一点的人。

于 2013-01-05T00:17:54.040 回答
0

.NET Framework 4 的解决方案

我试过删除 .ToList() 但我根本没有得到任何结果。

所以我的解决方法是:

对于删除:
在 datagridview UserDeletingRow 事件上

// Get deleted entity:
myEntityType currentEntity = (myEntityType)BindingSource[e.Row.Index];

// Delete directly from context
context.myEntityType.Remove(currentEntity);

对于插入:
在保存按钮上,我遍历 BindingSource 并检查是否有任何实体具有 ID == 0,然后使用 context.MyEntityType.Add(currentEntity); 添加每个实体。

于 2014-01-10T22:56:42.927 回答