我的问题非常基础,与使用企业库验证应用程序块5.0验证视图模型中的对象有关。
当用户输入无效数据时,如果UI显示控件的错误模板,则控件绑定的视图模型中的属性不会更新。
这是一个问题,因为我想调用此代码
ValidatorFactory factory = EnterpriseLibraryContainer.Current.GetInstance<ValidatorFactory>();
myValidator = factory.CreateValidator<Customer>();
ValidationResults results = myValidator.Validate(this.CustomerProperty);
if (!results.IsValid)
{
// etc
}
在视图模型中的我的保存按钮命令中检查数据是否有效。
我遇到的问题的例子。
e.g。 如果我有一个文本框绑定到vm中的字符串属性,并带有字符串长度验证器(最小长度为1,最大值为10),则可能发生以下情况;
我该怎么做?
答案 0 :(得分:0)
为了解决这个问题,我最终删除了validationRule(根据EntLib 5动手实验室文档中的示例)并在我的Customer类中实现了IDataErrorInfo。
然后我改变了我的XAML并在我的文本框中添加了
ValidatesOnDataErrors=True
然后按照我的预期验证我的对象。即无效数据传播到视图模型属性,然后我可以在我的保存命令上验证。