【发布时间】:2009-04-23 10:06:03
【问题描述】:
我昨天听了this herding code podcast on MVC, MVP, MVVM 并被将整个 ViewModel 对象发送到验证器的想法震惊了,该验证器除了验证其中的所有字段并将其发回之外什么都不做。
- 有人实施过这种类型的验证模式吗?
- 在技术上看起来如何?
我正在考虑通过还有一个“FormPreparer”来扩展这个想法,它在将模型数据、字段元数据和其他用户和上下文数据输入其中之后接收整个 ViewModel,然后这个“FormPreparer”准备所有字段在视图上的表单上,例如
- 日期字段由 DatePicker 控件表示
- 电子邮件字段由带有电子邮件验证的文本框表示
- 和例如客户字段是客户的下拉列表
元数据定义了每个字段的这些内容:
- 类型(文本、日期、日期/时间、持续时间、电子邮件、网址、客户)
- 控件(文本框、多行文本框、下拉菜单、单选按钮、复选框、点击按钮)
- 标签(例如“名字”)
- 帮助文本(例如“这是您在表格 4A 顶部找到的数字”)
- 示例(“#123ABCD”)
- 显示选项卡(例如,用于由多个选项卡区域组成的表单)
- 显示区域(例如,用于将字段分组为区域的表单)
- 显示顺序(例如组中字段的顺序)
- 值(例如“Jim”)
- 自动提示数据(用户开始输入时需要显示的名称数组)
- 字段状态(只读、编辑、隐藏)
“FormPreparer”会结合所有这些信息,然后将数据呈现给 View :
- 在适当的控件中显示所有表单数据(日期选择器,多行文本框中的描述等)
- 自动处理所有验证
- 只会显示当前用户可以查看的字段,并且只会让他编辑允许编辑的数据
- 等
有没有人按照这些思路编写过 WPF/MVVM 应用程序?
【问题讨论】:
标签: wpf validation mvvm