将文本绑定到我的文本块是行不通的

时间:2012-12-25 07:59:29

标签: c# wpf data-binding binding

这是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中没有任何反应。我做错了什么?

2 个答案:

答案 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中包含的字符串而不是更改的属性的名称?因此,如果方法存在,请尝试直接提供属性的名称。