У меня проблемы с выполнением привязки с использованием WPF.
У меня есть класс модели, похожий на этот:
public class DataModel
{
private double _temp;
public double Temperature
{
set
{
_temp= value;
OnPropertyChanged("Temperature");
}
get { return this._temp; }
}
}
Эта модель является производной от класса BaseDataModel
public abstract class BaseDataModel
{
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = this.PropertyChanged;
if (handler != null)
{
var e = new PropertyChangedEventArgs(propertyName);
handler(this, e);
}
}
}
Теперь у меня есть список DataModelобъекты в другом классе с именем DataViewModel, список называется «Значения».В классе выше этого класса у меня есть UserControl, который необходимо динамически создавать во время выполнения, поэтому привязка выполняется в следующем коде:
где-то над списком:
DataViewModel model = new DataViewModel();
исама привязка:
curbinding = new Binding();
curbinding.Source = model.Values;
curbinding.Path = new PropertyPath("Temperature");
curbinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
myTextBox.SetBinding(TextBox.TextProperty, curbinding);
Я знаю, что PropertyChanged запущен, но значение текстового поля не обновляется.Я просто не могу понять, почему?Когда я создаю привязку в первый раз, текст текстового поля обновляется, но когда я изменяю значение температуры, ничего не происходит.Разве я не думал о чем-то?
Я должен сказать, что приложение имеет много других классов и является более сложным, но, как я уже сказал, значение обновляется один раз, и никогда больше.