为什么视图不会在绑定中更新?

时间:2015-06-24 21:44:46

标签: wpf mvvm data-binding viewmodel textblock

我是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上阅读文章,并以类似方式实施。还是不行吗?

2 个答案:

答案 0 :(得分:0)

您需要从ViewModel发送一个属性更改事件。该类需要实现包含您需要触发的事件的INotifyPropertyChanged接口。事件的参数必须是您更改的属性的名称。

答案 1 :(得分:0)

将界面INotifyPropertyChanged添加到ViewModel。

接受ReSharper的建议为您实现接口(您可能必须安装ReSharper)。

在属性的setter中,添加OnPropertyChanged("Error");

Now, if you use错误=&#34;测试&#34 ;;`它将运行setter,它运行属性notify changed,它将更改推送到View中,以便可以看到它。