2011-11-08 52 views
2

我已經開始使用MVVM模式。MVVM模式如何用於驗證數據?

如果我想要顯示數據,一切都很好,我可以找到項目源到一個對象,一切都顯示爲它應該。

我的問題是如何驗證輸入數據?例如。我有2個輸入字段,我需要確保填充字段並確保該項目不存在。

我可以只將字段的內容轉發到我的視圖模型或有不同的/更好的方式嗎?

+0

如果我理解你的意圖正確,這是一個重複的。 http://stackoverflow.com/questions/4152346/mvvm-validation –

回答

3

您的ViewModel應該執行IDataErrorInfo進行驗證。

示例代碼在C#:

public class EmployeeViewModel : IDataErrorInfo, INotifyPropertyChanged 
{ 
    public string FirstName { /* get set and NotifyChanged here...*/ } 

    public string LastName { /* get set and NotifyChanged here...*/ } 

    public string Error 
    { 
     get { return error; } 
    } 

    public string this[string columnName] 
    { 
     get 
     { 
      string error = string.Empty; 
      switch (columnName) 
      { 
       case "FirstName": 
        if(string.IsNullOrEmpty(this.FirstName)) 
         error = "FirstName can not be blank"; 
        else if (this.FirstName == "Ekk") 
         error = "Ekk is my name, you should change!"; 
        break; 
       case "LastName": 
        if(string.IsNullOrEmpty(this.LastName)) 
         error = "LastName can not be blank"; 
        break; 
      } 
      return error; 
     } 
    } 
}