WPF文本块不会在运行时显示属性更改



我有一个如下的文本块

<TextBlock x:Name="lblErrorMessage" 
           Grid.Row="2" 
           Foreground="Red"   
           Margin="{Binding ControlMargin}" 
           HorizontalAlignment="Stretch" 
           VerticalAlignment="Stretch" 
           Background="Aqua"
           TextWrapping="Wrap" 
           Text="{Binding Error}"/>

后面视图中的属性
    /// <summary>
    /// The error message
    /// </summary>
    private string _error = "kkbkbkbkbjK";
    /// <summary>
    /// The error message
    /// </summary>
    public string Error
    {
        //return the error message
        get { return _error; }
        set
        {
            //set the error message
            _error = value;
            //fire the property changed event
            if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs("Error"));
        }
    }

然后我有一个方法,它通过一个iccommand来执行,更新Error

 //set the error message
 Error = "Login Succeeded";

我的问题是,其他绑定工作(如下面所示的Margin),但文本块"lblErrorMessage"绝对拒绝显示消息。

如果我在构造函数中设置了Error属性,它会显示。如果我设置_error变量显示

如果我在运行时设置属性,它似乎不会拾取更改。

我已经尝试了"双向"PropertyChanged"等设置的所有组合,但还没有香蕉。

任何想法?

总结一下注释。

你发布的代码很好,因为当Error发生变化时,你会用正确的属性名称引发PropertyChanged事件,但如果你的类不实现INotifyPropertyChanged接口,这将不起作用。

public class MyViewModel: INotifyPropertyChanged

相关内容

  • 没有找到相关文章

最新更新