WinForms data binding with a Save button?

Posted by Mat on Stack Overflow See other posts from Stack Overflow or by Mat
Published on 2010-03-11T21:54:23Z Indexed on 2010/03/12 1:37 UTC
Read the original article Hit count: 444

Filed under:
|
|
|

How is data binding in C# WinForms supposed to work when you have a Save button? I don't want the data updated until I press Save!

I have two forms (list and detail) backed by a BindingList<T> collection and my custom object from that collection, respectively. I can bind each form to the list or object appropriately. However, any changes made in the detail form are immediately reflected in the list form - I don't want to save the changes and update the details shown in the list until the Save button is pressed.

Is data binding designed to support this? Is there a common pattern for doing so?

Whichever way I look at it, binding doesn't seem to be able to support this scenario. I've considered the following:

  • Pass a clone of the object to the detail form, but then I have to reconcile the changes on Save - changes may have been made to the copy in the list in the meantime.

  • Implementing IEditableObject and calling EndEdit on save almost works as I can prevent the list being notified of the changes made until Save is pressed, but if something else causes a refresh the list is updated with the interim data.

I'm currently left with dispensing with data binding in my detail view, and doing it all manually. Which is rather annoying.

© Stack Overflow or respective owner

Related posts about c#

Related posts about databinding