在项目中实施MV-VM并遵循Karl Shifflett关于实现验证框架的建议,但并不真正想要仅对验证部分使用完整框架(如Ocean)。
您建议哪种验证框架适用于M-V-VM模式?
答案 0 :(得分:1)
我只能使用完整的验证框架来说明 not 的经验,因为我只是坚持使用WPF原生提供的内容。
在我的项目中,我在我的实体/数据类上实现了IDataError接口,并实现了Linq-To-Sql观察到的部分“OnValidate”方法,然后实现了实体类的静态/共享成员。验证自制助手,提供实现IDataError.Items和OnValidation方法的后端逻辑。
然后,它只是将ValidatesOnErrors = True,ValidatesOnExceptions = True添加到XAML中描述的所有绑定的情况。最终结果令人鼓舞 - WPF能够提供无效数据的可视化反馈,并且实现验证的工作量很小。
我建议遵循保持用户输入验证逻辑与属性设置器逻辑分离的趋势。有时,一个属性的有效性取决于另一个属性的状态。将验证逻辑保留在属性设置器之外允许您构建应用程序,其中最终用户能够输入导致有效状态的两个值,而没有任何一个属性设置器在输入时拒绝这些值。 / p>
答案 1 :(得分:0)
您可以查看一下轻量级验证框架附带的 WPF Application Framework (WAF) 。
它重用.NET Framework的System.ComponentModel.DataAnnotations验证框架,并将其与WPF数据绑定的IDataErrorInfo支持结合起来。