Привязка данных не обновляет элемент пользовательского интерфейса - PullRequest
0 голосов
/ 09 ноября 2011

У меня проблемы с выполнением привязки с использованием 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 запущен, но значение текстового поля не обновляется.Я просто не могу понять, почему?Когда я создаю привязку в первый раз, текст текстового поля обновляется, но когда я изменяю значение температуры, ничего не происходит.Разве я не думал о чем-то?

Я должен сказать, что приложение имеет много других классов и является более сложным, но, как я уже сказал, значение обновляется один раз, и никогда больше.

1 Ответ

0 голосов
/ 02 декабря 2011

Если вы не читали комментарии, я просто забыл реализовать INotifyPropertyChanged ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...