When I develop using Delphi I always call DataSet.CheckBrowseMode() to allow bound controls to apply its pending changes to the DataSet. I've been looking for similar way in .NET
I've tried
// When the user press Ctrl-S
// Apply any pending edit
this.TheDataBindingSource.CurrencyManager.EndCurrentEdit();
// then save the data
this.SaveData();
Unlike Delphi DataSet.CheckBrowseMode(), this code does not has any effect when there are pending changes inside a TextBox. My user has to move the focus away from the textbox via <"TAB"> before pressing Ctrl-S to save the data.