WPF TextBlock没有更新

时间:2012-03-12 10:11:29

标签: c# wpf textblock

我有一个标准的texblock绑定到我的viewmodel

中的属性
  <TextBlock  Grid.Row="3"  Grid.Column="1" Text="{Binding MyErrorMessage, Mode=Default,UpdateSourceTrigger=PropertyChanged}"  Foreground="Red"></TextBlock>

属性

private string _errorMessage;
        public string MyErrorMessage
        {
            get { return _errorMessage; }
            set
            {
                _errorMessage = value;
                this.RaisePropertyChanged(this.MyErrorMessage);

            }
        }

我做标准

 this.MyErrorMessage = "Login failed";

但是文本块没有更新。我可以看到正确调用了setter和getter,但仍然没有更新textblock。我错过了一些基本的东西吗?

2 个答案:

答案 0 :(得分:1)

引发的属性应该包含字符串“MyErrorMessage”而不是属性的值。即。

this.RaizePropertyChanged( "MyErrorMessage" )

如果你解决了这个问题(其他一切也设置正确),你会没事的。

副注释:不需要Mode = Default(顾名思义,默认),UpdateSourceTrigger = PropertyChanged(也是默认值,并不会使代码更具可读性)。

答案 1 :(得分:0)

RaisePropertyChanged采用字符串 http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.propertychanged.aspx

所以只需将呼叫更改为

即可
this.RaisePropertyChanged("MyErrorMessage");