数据绑定不会更新ui元素

时间:2011-11-09 14:25:16

标签: wpf data-binding

我无法使用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);

        }
     }
 }

我现在在另一个名为DataViewModel的类中有一个DataModel对象列表,List名为" Values"。在该类上面的类中,我有一个需要在运行时动态创建的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已被触发,但文本框的值未更新。我无法弄清楚为什么?当我第一次创建bindig时,文本框的文本会更新,但是当我更改Temperature的值时,没有任何反应。 我没有想到什么吗?

我不得不说,该应用程序有很多其他类,并且更复杂,但正如我所说,值会更新一次,而不会再次更新。

1 个答案:

答案 0 :(得分:0)

如果您没有阅读评论,我只是忘了实施INotifyPropertyChanged ......