1

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 では何も起こりません。私は何を間違っていますか?

4

2 に答える 2

2

_errors変数を直接設定しているため、RaisePropertyChanged発射されません。で値を設定してみてください

Errors = = "Compiler Errors :\r\n";
于 2012-12-25T08:03:04.077 に答える
1
private string _errors = "";
public string Errors
{
    get { return this._errors; }
    set
    {
        if(_errors != value)
        {
            _errors = value;
            RaisePropertyChanged("Errors");
        }
    }
}

次のように設定します。

Errors = "..."

メソッド RaisePropertyChanged がどのように機能するかはわかりませんが、ラムダ式 ()=>Errors が実行されると、変更されたプロパティの名前ではなく、_errors に含まれる文字列が返されますか? したがって、メソッドが存在する場合は、プロパティの名前を直接指定してみてください。

于 2012-12-25T08:30:14.033 に答える