Wpf 如何在MVVM模式中验证ViewModel中的数据?

Wpf 如何在MVVM模式中验证ViewModel中的数据?,wpf,validation,mvvm,Wpf,Validation,Mvvm,昨天听了之后,我被将整个ViewModel对象发送到验证器的想法打动了,验证器只会验证其中的所有字段并将其发送回 有人实现过这种类型的验证模式吗? 技术上看起来怎么样 我正在考虑扩展这一想法,在模型数据、字段元数据和其他用户和上下文数据输入到视图模型后,还有一个“FormPreparer”接收整个ViewModel,然后这个“FormPreparer”准备表单上的所有字段,以便 日期字段由日期选择器控件表示 电子邮件字段由带有电子邮件验证的文本框表示 例如,“客户”字段是客户的下拉列表

昨天听了之后,我被将整个ViewModel对象发送到验证器的想法打动了,验证器只会验证其中的所有字段并将其发送回

  • 有人实现过这种类型的验证模式吗?
  • 技术上看起来怎么样
我正在考虑扩展这一想法,在模型数据、字段元数据和其他用户和上下文数据输入到视图模型后,还有一个“FormPreparer”接收整个ViewModel,然后这个“FormPreparer”准备表单上的所有字段,以便

  • 日期字段由日期选择器控件表示
  • 电子邮件字段由带有电子邮件验证的文本框表示
  • 例如,“客户”字段是客户的下拉列表
元数据定义了关于每个字段的以下内容:

  • 类型(文本、日期、日期/时间、持续时间、电子邮件、url、客户)
  • 控件(文本框、多行文本框、下拉列表、单选按钮、复选框、单击按钮)
  • 标签(如“名字”)
  • 帮助文本(例如,“这是您在表格4A顶部找到的号码”)
  • 示例(“#123ABCD”)
  • 显示选项卡(例如,对于由多个选项卡区域组成的表单)
  • 显示区域(例如,对于将字段分组为区域的表单)
  • 显示顺序(例如组中字段的顺序)
  • 价值(如“吉姆”)
  • 自动提示数据(用户开始键入时需要显示的名称数组)
  • 字段状态(只读、编辑、隐藏)
“FormPreparer”将合并所有这些信息,然后向视图呈现数据,该视图:

  • 在适当的控件中显示所有表单数据(日期选择器、多行文本框中的说明等)
  • 自动处理所有验证
  • 只显示当前用户可以看到的字段,并且只允许他编辑允许他编辑的数据
  • 等等

有人按照这些思路编写了WPF/MVVM应用程序吗?没有。我正在处理一个WPF/MVVM项目,但我们还没有采取这种通用的验证方法。我们在每个视图模型中创建一个自定义的验证方法,该方法具有特定于每个视图模型的验证逻辑

一个可以用于所有视图模型的通用验证例程将非常好