0

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

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/

4

1 回答 1

0

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

如果您的视图模型中有 Customer 属性,则可以在 xaml 中访问它,例如:

{Binding Customer.Name}

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

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

于 2013-04-22T14:31:15.497 回答