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