I have a basic property that stores an object of type Fruit:
Fruit food; public Fruit Food {     get {return this.food;}     set     {         this.food= value;         this.RefreshDataBindings();     } }  public void RefreshDataBindings() {     this.textBox.DataBindings.Clear();     this.textBox.DataBindings.Add("Text", this.Food, "Name"); }   So I set this.Food outside the form and then it shows up in the UI.
If I modify this.Food, it updates correctly. If I modify the UI programmatically like:
this.textBox.Text = "NewFruit", it doesn't update this.Food.
Why could this be? I also implemented INotifyPropertyChanged for Fruit.Name, but still the same.
I Recommend you implement INotifyPropertyChanged and change your databinding code to this:
this.textBox.DataBindings.Add("Text",                                 this.Food,                                 "Name",                                 false,                                 DataSourceUpdateMode.OnPropertyChanged);   That'll fix it.
Note that the default DataSourceUpdateMode is OnValidation, so if you don't specify OnPropertyChanged, the model object won't be updated until after your validations have occurred.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With