Your likely problem is the databinding context.  You need to tell the context to get/accept all changes, then those will be put back in the data source.

This has been a nightmare since day 1 in VBx and later .NET (yes, .NET has the same databinding issues as VBx did almost 20 years later!)

It will really bake your noodle when you end up with .NET creating multiple data binding contexts on your single form because you go and put on tab controls etc. And what's worse, is that the validating/ed events don't fire on tabing in and out of container controls, so nothing ever gets persisted back to the data source.

Hence why all of the advice online will tell you not to use databinding.

Me? I created my own extender control that handles data binding and implimented IPropertyChanged in the extender so that I can tell when the bound control's property changed and persist it live instead of waiting for the validation events....