是否有关于在WPF中执行异步MVVM-ish验证的建议?已阅读有关INotifyDataErrorInfo的内容,但遗憾的是只有Silverlight可以使用。
感谢。
答案 0 :(得分:1)
IDataErrorInfo是WPF的数据验证机制。你不喜欢微软的一致性吗? ;)
在ViewModel上实现IDataErrorInfo,如下所示:
public class MyViewModel : IDataErrorInfo
{
public string Error
{
get {
return GetErrorStringForThisViewModelInGeneral();
}
}
public string this[string columnName]
{
get
{
string result = null;
switch (columnName)
{
case "Quantity":
if (Quantity <= 0)
result = "Quantity must be greater than 1.";
break;
}
return result;
}
}
在属性内部(又名this [])验证,您可以使用EnterpriseLibrary中的验证器,使用Attributes的自定义验证器或您喜欢的任何内容。我只是展示了一个基本的实现,以帮助您入门。