我是MVVM和wpf的新手。我正在实现一个连接到数据库的简单登录页面来检索用户详细信息。在视图模型中,我有一个名为Error的字符串字段,它存储任何错误,如错误的密码或连接错误,以显示在视图上。我将错误绑定到视图中的文本块。因此,如果发生某些错误,按下登录按钮我会更新错误文本。但问题是这种变化没有反映在视野中。
string _error;
public string Error
{
get { return _error; }
set { _error = value; }
}
将字段更新为
_error = "Wrong password!";
在视图中:
<TextBlock Text="{Binding Error, UpdateSourceTrigger=PropertyChanged}"/>
有什么问题?
编辑:我在Code Project上阅读文章,并以类似方式实施。还是不行吗?
答案 0 :(得分:0)
您需要从ViewModel发送一个属性更改事件。该类需要实现包含您需要触发的事件的INotifyPropertyChanged
接口。事件的参数必须是您更改的属性的名称。
答案 1 :(得分:0)
将界面INotifyPropertyChanged
添加到ViewModel。
接受ReSharper的建议为您实现接口(您可能必须安装ReSharper)。
在属性的setter中,添加OnPropertyChanged("Error");
。
Now, if you use
错误=&#34;测试&#34 ;;`它将运行setter,它运行属性notify changed,它将更改推送到View中,以便可以看到它。