我已经开始使用MVVM模式了。
如果我想显示数据,一切都很好,我可以找到一个对象的项目源,一切都按照它应该显示。
我的问题是如何验证输入数据?例如。我有2个输入字段,我需要确保填充字段并确保该项目尚不存在。
我可以将字段的内容转发到我的视图模型,还是有不同/更好的方式?
答案 0 :(得分: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;
}
}
}