WPF + MVVM +企业库验证块

时间:2011-06-21 19:32:10

标签: wpf validation mvvm enterprise-library idataerrorinfo

我正在开始一个新的WPF MVVM应用程序,我试图了解如何处理验证“比以前更好” - 在模型和viewModel上使用IDataErrorInfo之前。它工作正常,但以后很难扩展,在大多数情况下需要大量的手动布线。我确信IDataErrorInfo仍然是连接ViewModel验证的好方法,但是我希望能够使用企业库来验证模型,但有没有办法一次实际验证一个属性而不是整个对象?

还有其他一些聪明的方法来使用EL生成的配置吗?

有任何想法或其他建议吗?

更新

我想我发现了一些或多或少的东西,我一直在寻找: (来自http://entlib.codeplex.com/discussions/233057

Type type = typeof(Customer);
PropertyInfo property = type.GetProperty("Name");

string ruleset = string.Empty;
var source = ValidationSpecificationSource.All;
var builder = new ReflectionMemberValueAccessBuilder();

Validator validator =
    PropertyValidationFactory.GetPropertyValidator(
        type, property, ruleset, source, builder);

ValidationResults results = validator.Validate(customer);

但这意味着我的ViewModel必须处理模型实例,而不是做类似的事情:

private string name;
public string Name
{
   get { ... }
   set { ...}
}

看起来我必须处理模型实例或在ViewModel层进行验证 - 我希望避免这种情况。

...或者我错过了一些对大多数人来说非常有名和明显的东西......?

欢迎任何建议。

0 个答案:

没有答案