这是xaml:
<TextBlock Text="{Binding Errors}" Grid.Row="3" Foreground="Red"/>
这是ViewModel代码:
private string _errors = "";
public string Errors
{
get { return this._errors; }
set
{
if(_errors != value)
{
_errors = value;
RaisePropertyChanged(() => Errors);
}
}
}
然后在某个函数中我更改_errors
变量
_errors = "Compiler Errors :\r\n";
但TextBlock中没有任何反应。我做错了什么?
答案 0 :(得分:2)
您正在直接设置_errors
变量 - 因此没有RaisePropertyChanged
被解雇。尝试按
Errors = = "Compiler Errors :\r\n";
答案 1 :(得分:1)
private string _errors = "";
public string Errors
{
get { return this._errors; }
set
{
if(_errors != value)
{
_errors = value;
RaisePropertyChanged("Errors");
}
}
}
设置如下:
Errors = "..."
我不知道RaisePropertyChanged方法是如何工作的,但如果执行了lambda expression()=&gt;错误,它将返回_errors中包含的字符串而不是更改的属性的名称?因此,如果方法存在,请尝试直接提供属性的名称。