我有一个文本 block 如下
<TextBlock x:Name="lblErrorMessage"
Grid.Row="2"
Foreground="Red"
Margin="{Binding ControlMargin}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="Aqua"
TextWrapping="Wrap"
Text="{Binding Error}"/>
还有一个 View 后面的属性
/// <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"));
}
}
然后我有一个通过更新错误的 ICommand 执行的方法
//set the error message
Error = "Login Succeeded";
我的问题是其他绑定(bind)工作(例如下面显示的边距)但文本 block “lblErrorMessage”绝对拒绝显示消息。
如果我在它显示的构造函数中设置 Error 属性。 如果我设置显示的 _error 变量
似乎如果我在运行时设置该属性,它不会接受更改。
我已经尝试了“双向”“PropertyChanged”等设置的所有组合,但还没有香蕉。
有什么想法吗?
最佳答案
总结评论。
当 Error
已更改但如果您的类未实现 INotifyPropertyChanged
界面这将不起作用。
public class MyViewModel: INotifyPropertyChanged
关于c# - WPF 文本 block 不会在运行时显示属性更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22275297/