2015-06-24 91 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中以便可以看到。

相關問題