我有一个文本块如下
<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"));
}
}
然后我有一个方法,它通过更新错误的ICommand执行
//set the error message
Error = "Login Succeeded";
我的问题是其他绑定有效(例如下面显示的边距),但文本块“lblErrorMessage”绝对拒绝显示该消息。
如果我在它显示的构造函数中设置了Error属性。 如果我设置显示
的_error变量似乎如果我在运行时设置属性,它就不会接受更改。
我已尝试过“双向”“PropertyChanged”等设置的所有组合,但尚未使用香蕉。
有什么想法吗?
答案 0 :(得分:4)
总结评论。
在PropertyChanged
发生更改时,如果您使用正确的属性名称引发Error
事件,那么您发布的代码就可以了,但如果您的类没有实现INotifyPropertyChanged
接口,则无效。
public class MyViewModel: INotifyPropertyChanged