【发布时间】:2011-05-05 07:58:37
【问题描述】:
我的问题非常基本,与使用企业库验证应用程序块 5.0 验证视图模型中的对象有关。
似乎当用户输入无效数据时,当 UI 显示控件的错误模板时,控件绑定到的视图模型中的属性没有得到更新。
这是一个问题,因为我想调用这样的代码
ValidatorFactory factory = EnterpriseLibraryContainer.Current.GetInstance<ValidatorFactory>();
myValidator = factory.CreateValidator<Customer>();
ValidationResults results = myValidator.Validate(this.CustomerProperty);
if (!results.IsValid)
{
// etc
}
在视图模型中的保存按钮命令中检查数据是否有效。
我遇到的问题示例。
例如 如果我有一个文本框绑定到带有字符串长度验证器(最小长度 1,最大 10)的 vm 中的字符串属性,那么可能会发生以下情况;
- 输入“ABC”文本。 UI 不显示错误。 查看模型属性已更新为“ABC”。
- 删除文本框的内容(因此现在无效)。 UI 现在显示错误(良好)。 但是视图模型属性现在与 UI 不同步。视图模型中的属性仍设置为 ABC。
- 保存验证仍将通过,因为视图模型数据仍然有效。
我应该怎么做?
【问题讨论】:
标签: validation enterprise-library viewmodel