【发布时间】:2011-01-26 14:30:31
【问题描述】:
当您有“保存”按钮时,C# WinForms 中的数据绑定应该如何工作?我不希望在按“保存”之前更新数据!
我有两个表单(列表和详细信息),分别由 BindingList<T> 集合和来自该集合的自定义对象支持。我可以将每个表单适当地绑定到列表或对象。但是,在详细信息表单中所做的任何更改都会立即反映在列表表单中 - 在按下“保存”按钮之前,我不想保存更改并更新列表中显示的详细信息。
数据绑定是否旨在支持这一点?这样做有一个共同的模式吗?
无论我怎么看,绑定似乎都无法支持这种情况。我考虑了以下几点:
将对象的克隆传递给详细信息表单,但随后我必须协调保存时的更改 - 同时可能已对列表中的副本进行了更改。
实现
IEditableObject并在保存时调用EndEdit几乎可以正常工作,因为我可以防止在按下保存之前通知列表所做的更改,但如果有其他原因导致刷新,则列表将使用临时更新数据。
我目前在我的详细视图中放弃了数据绑定,并且全部手动完成。这很烦人。
【问题讨论】:
标签: c# winforms data-binding binding