Now when I type something in textbox1 and lose focus, textbox2 is altered but when I click the button neither textbox is updated.
Obviously if I uncomment the call to notifyPropertyChanged all works fine. This however brings up questions in my mind.
- If I change textfield1 this must be changing the datasource and then the datasource somehow triggers textbox2 to re-fetch the data then displaying it.
The default datasource update mode is . When you leave the textbox you trigger its validation. If you set the TextBox.CauseValidation property to false, you would not see the second textbox update to reflect the change to the datasource.
If you use the longer Add method overload and specify "OnPropertyChanged" for the update mode, you will see the other textbox change as you type. "OnValidation" and "OnPropertyChanged" are for the control and its property to which you are adding the binding, not the datasource.
I'm not sure about this but it makes sense to me. If one databound control fires an event to update the datasource, then the binding manager does not require the property change event from the datasource (as it is the source of the change) to know that it needs to update all other controls bound to the same datasource.
- If I click the button this changes the datasource but for some reason the control isn't triggered to fetch the data again.
As you have disabled the property change notification, the binding manager has no way to …