【问题标题】:BindingSource: How cancel changes to current itemBindingSource:如何取消对当前项目的更改
【发布时间】:2014-05-05 22:09:36
【问题描述】:

我有从 repository_DohvatiSveZapise 获得的项目列表:

      using Entities entities = new Entities())
        {
            return entities.Zapis.ToList();
        }

以及我用作数据源的列表

      this.zapisBindingSource.DataSource = baza.DohvatiSveZapise();

对象“Zapis”有一些绑定到文本框的字符串属性。当用户更改某些文本框中的值时,他可以选择保存或放弃更改。我试过这个丢弃

  zapisBindingSource.CancelEdit();

但当前项目(由用户修改的 bindingsource.Current)仍有修改的值。如何撤消对绑定源中当前项目所做的所有更改?

【问题讨论】:

  • 如果您再次尝试设置绑定源this.zapisBindingSource.DataSource = baza.DohvatiSveZapise(); 会发生什么情况?
  • 然后它可以工作..但这意味着我正在从数据库中读取例如 1000 条记录,只是为了撤消对其中一个所做的更改....

标签: winforms entity-framework c#-4.0 bindingsource


【解决方案1】:

没有自动管理取消自定义对象的修改。

来自BindingSource.CancelEdit MSDN 页面:

此方法丢弃自上次保存或加载以来对数据的修改 如果同时满足以下两个条件,则操作:

  • 数据源 实现 IEditableObject 接口。

  • EndEdit 方法没有 还没有被调用。

因此,您需要编写自己的取消逻辑来实现 IEditableObject 接口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 2013-02-21
    • 1970-01-01
    • 2012-07-01
    • 2014-12-02
    相关资源
    最近更新 更多