【发布时间】:2009-08-03 19:31:29
【问题描述】:
这是场景(使用绑定到 DataSet 中的 DataTable 的 BindingSource):
- 用户创建了一个新的通讯录 联系方式,填写First和Last 数据绑定控件中的名称。
- 他按下 Apply,他的事件 处理程序调用 BindingSource.EndEdit()。
- 然后他意识到有一个 错误,并添加了一个电子邮件地址。
- 但是当他按下应用时, 验证失败(无效的电子邮件 格式),因此不会调用 EndEdit()。
- 他决定不进行编辑,并且 按下取消按钮,其 事件处理程序调用 BindingSource.CancelEdit()。
- 但是,而不是恢复到 新的接触只是一个第一和 姓氏,没有电子邮件, BindingSource 已经摆脱了 整条记录。
自上次调用 EndEdit() 以来,有什么方法可以只撤消操作?我的印象是 CancelEdit() 应该是这样工作的。
【问题讨论】:
-
我遇到了类似的问题,所以我很想看看你是否能得到一个好的答案。我的解决方法是直接在 DataRowView 对象上调用 EndEdit()。
-
在DataRowView上调用时,DataRowState会变成什么?它仍然是添加的,还是已修改或未更改?
标签: c# .net data-binding ado.net bindingsource