2015-06-24 52 views
0

我对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

您需要从ViewModel发送属性已更改的事件。该课程需要实现包含您需要触发的事件的INotifyPropertyChanged界面。事件的参数需要是您更改的属性的名称。

+0

我发现了一个实现INotifyPropertyChange的视图模型基类,所以在我的视图模型类定义中我扩展了视图模型基类。我还需要做什么? – Manoj

+0

@Manoj您可以在MSDN文档中找到一个非常好的示例。我的问题中有一个链接可以引导你。看看例子部分。 – Nitram

0

将界面INotifyPropertyChanged添加到您的ViewModel。

接受ReSharper为您实施界面的建议(您可能需要安装ReSharper)。

在设置为属性,添加OnPropertyChanged("Error");

Now, if you use Error =“test”;`它会运行setter,它运行属性notify发生变化,这会将更改推送到View中以便可以看到。

相关问题