Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF文本块未更新_C#_Wpf_Textblock - Fatal编程技术网

C# WPF文本块未更新

C# WPF文本块未更新,c#,wpf,textblock,C#,Wpf,Textblock,我的viewmodel中有一个绑定到属性的标准texblock <TextBlock Grid.Row="3" Grid.Column="1" Text="{Binding MyErrorMessage, Mode=Default,UpdateSourceTrigger=PropertyChanged}" Foreground="Red"></TextBlock> 我做一个标准 this.MyErrorMessage = "Login failed"; 但

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

  <TextBlock  Grid.Row="3"  Grid.Column="1" Text="{Binding MyErrorMessage, Mode=Default,UpdateSourceTrigger=PropertyChanged}"  Foreground="Red"></TextBlock>
我做一个标准

 this.MyErrorMessage = "Login failed";

但是文本块没有更新。我可以看到setter和getter被正确调用,但textblock仍然没有更新。我是否缺少一些基本信息?

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

this.RaizePropertyChanged( "MyErrorMessage" )
如果你解决了这个问题(其他一切都设置正确),你会没事的


旁注:不需要Mode=Default(顾名思义,这是默认值)和UpdateSourceTrigger=PropertyChanged(也是默认值,不会使代码更可读)。

引发的属性应该有字符串“MyErrorMessage”,而不是属性的值。i、 e

this.RaizePropertyChanged( "MyErrorMessage" )
如果你解决了这个问题(其他一切都设置正确),你会没事的


旁注:没有必要使用Mode=Default(顾名思义,它是默认值)和UpdateSourceTrigger=PropertyChanged(也是默认值,并且不会使代码更可读)。

所以把电话改成

this.RaisePropertyChanged("MyErrorMessage");

RaisePropertyChanged接受一个字符串

所以把电话改成

this.RaisePropertyChanged("MyErrorMessage");

谢谢,现在我必须弄清楚为什么这个方法在我所有的其他模块中都有效。必须强调的是,忘了我的lambda表达式。我通常是这样写的。this.raiseProperty已更改(()=>this.MyErrorMessage);谢谢,现在我必须弄清楚为什么这个方法在我所有的其他模块中都有效。必须强调的是,忘了我的lambda表达式。我通常是这样写的。this.raiseProperty已更改(()=>this.MyErrorMessage);