在POCO上使用dataannotation&# 39;s,并使用MVVM WPF反映结果

本文关键字:MVVM WPF 结果 POCO dataannotation | 更新日期: 2023-09-27 18:10:16

我一直在研究DataAnnotations并创建我自己的DataAnnotations以供将来使用-主要是在MVC4(这是相当容易的,可以安全地说)。我想验证如果我在WPF项目中使用相同的Model类,它们将是多么有用,有效和易于使用。

public class Customer
{
  public int Id { get; set; }
  [Required()]
  public string Name { get; set; }
}
public class ViewModelBase : IDataErrorInfo, INotifyPropertyChanged
{
  //... (INotifyPropertyChanged)
  public string Error
  {
    get 
    {
      return string.Empty;
    }
  }
  public string this[string columnName]
  {
    get
    {
      //According to tutorials, something here
      return string.Empty;
    }
  }
}

因此,如果我要继续创建从基类继承的CustomerViewModel,我是否必须呈现模型属性的子集视图,如:

public class CustomerViewModel : ViewModelBase
{
  [Required]
  public string Name { get; set; }
}

意味着我必须再次实现注释,或者有可能只是使用模型并以某种方式使用WPF的MAGICAL绑定将模型验证反射回前端?

我一直在看很多文章,但没有一篇看起来很整洁或很简洁——比如:

http://blog.paulbetts.org/index.php/2010/04/27/wpf-data-validation-using-dataannotations/

在POCO上使用dataannotation&# 39;s,并使用MVVM WPF反映结果

为什么要在视图模型中放置另一个Name属性?

如果你在视图模型中有一个Customer属性,你可以在你的xaml中访问它,像

{Binding Customer.Name}

这将自动从模型类中获取数据注释。

编辑:一个很好的例子见:http://www.codeproject.com/Articles/98681/Validating-User-Input-WPF-MVVM