Data binding for TextBox
Solution 1:
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.
Solution 2:
You need a bindingsource object to act as an intermediary and assist in the binding. Then instead of updating the user interface, update the underlining model.
var model = (Fruit) bindingSource1.DataSource;
model.FruitType = "oranges";
bindingSource.ResetBindings();
Read up on BindingSource and simple data binding for Windows Forms.
Solution 3:
We can use following code
textBox1.DataBindings.Add("Text", model, "Name", false, DataSourceUpdateMode.OnPropertyChanged);
Where
-
"Text"
– the property of textbox -
model
– the model object enter code here -
"Name"
– the value of model which to bind the textbox.