Bindingsource不会暂停绑定

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

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

我有一个绑定到bsCustomerAccounts的ObjectListView 。 到目前为止一切正常。

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

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

问题是当用户单击Cancel以取消此表单中的帐户编辑时。 原始的bcCustomerAccounts以及列表仍在更新中。

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

我错过了什么吗?

一开始看起来真的很令人惊讶,你认为当你没有将编辑过的对象分配回列表时,为什么要编辑列表项?

关键点在于:类是引用类型 。

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