У меня есть форма окна «MyForm» с текстовым полем, которое привязано к свойству другого класса «MyData». Режим обновления источника данных установлен на «При изменении свойства»
Я использовал IDE VisualStudio. Создан следующий код для привязки
this.txtYield.DataBindings.Add(new Binding("Text", this.BindingSourceMyDataClass, "PropertyInMyDataClass", true, DataSourceUpdateMode.OnPropertyChanged));
В конструкторе формы после инициализации значений был добавлен код для привязки класса MyData к форме
myDataClassInstantiated = new MyDataClass();
BindingSourceMyDataClass.DataSource = myDataClassInstantiated;
Реализован интерфейс INotifyProperty:
public double PropertyInMyDataClass
{
get { return _PropertyInMyDataClass; }
set
{
if (!Equals(_PropertyInMyDataClass, value))
{
_PropertyInMyDataClass = value;
FirePropertyChanged("PropertyInMyDataClass");
}
}
}
Фоновый рабочий используется для выполнения расчетов и обновления свойства 'PropertyInMyDataClass'
Я ожидал, что текстовое поле в форме будет обновляться автоматически после завершения фонового рабочего процесса. Этого не произошло
Если я вручную копирую присвоить значение из свойства текстовому полю формы, значение отображается правильно
this.txtYield.Text = String.Format("{0:F0}", myDataClassInstantiated.PropertyInMyDataClass);
Я пытался добавить Refresh () и Update () в метод MyForm.MyBackgroundWorker_RunWorkerCompleted, но данные по-прежнему не обновляются.
Если позже я запущу другой фоновый рабочий, который обновляет различные текстовые поля в той же форме, текстовое поле, привязанное к PropertyInMyDataClass, будет обновлено
Буду признателен за предложения, которые помогут мне понять и решить эту проблему, связанную с данными