【问题标题】:Bindingsource is not suspending bindingBindingsource 没有暂停绑定
【发布时间】:2016-11-06 08:19:17
【问题描述】:

我有一个显示自定义详细信息的表单,其中一个部分是与客户关联的银行账户列表。此列表绑定到它自己的绑定源,因此在加载客户时我会这样做:

bsCustomer.DataSource = customer;
bsCustomerAccounts.DataSource = customer.Accounts;

我有一个绑定到bsCustomerAccountsObjectListView。到目前为止一切正常。

要编辑特定帐户,我双击它并打开一个单独的表单:

using (var form = new CustomerAccountForm(selectedAccount))
{
    DialogResult result = form.ShowDialog(this);
    if (result == DialogResult.OK)
    {
        selectedAccount= form.Account;
    }
}

问题是当用户点击Cancel来取消对这个表单中账户的编辑时。原来的bcCustomerAccounts,因此列表仍在更新中。

我已经尝试过SuspendBindingRaiseListChangedEvents = false,但绑定源仍在更新中。

我错过了什么吗?

【问题讨论】:

    标签: c# winforms data-binding objectlistview


    【解决方案1】:

    一开始似乎真的很奇怪,您认为虽然您没有将编辑的对象分配回列表,但为什么要编辑列表项?

    关键点在这里:类是Reference Type

    您将选定的帐户传递给编辑表单,因为它是一个类并且类是引用类型,实际上您正在编辑列表中的同一个实例。因此,当您编辑属性时,无论单击“确定”还是“取消”,所有编辑都直接应用于对象。

    【讨论】:

      猜你喜欢
      • 2012-12-08
      • 1970-01-01
      • 2023-03-20
      • 2011-01-11
      • 2011-06-25
      • 1970-01-01
      • 1970-01-01
      • 2019-07-20
      • 1970-01-01
      相关资源
      最近更新 更多