我正在尝试对我们现有产品的一组相当复杂的技术应用一些验证,同时实现一个新架构。其中大部分进展顺利,但是我仍然需要对现有产品使用 WinForms,因此需要使用ErrorProvider
该类来显示验证错误。(新产品也将能够通过 WPF/MVC 使用新架构,但我没有时间或资源从头开始完全重写以消除 WinForms,因此需要混合技术)
新架构的基本布局如下:
Database -> Model (via NHibernate) -> ViewModel -> Form (using BindingSource)
所以我的问题是,我如何利用对表单上模型属性ValidationResult
的失败DataAnnotation
检查中的一个?ErrorProvider
我已经设法获得了ValidationResults
最多表单的列表,但是将它们设置为特定控件是在暗示我没有为每个控件编写代码,我更愿意通过BindingSource
可能在基本表单中创建一个通用的方法来执行此操作。
我知道如果DataAnnotations
在 ViewModels 上我可以更容易地做到这一点,但如果我这样做了,那么如果对 Model/Database 表进行了更改,我将不得不让所有这些都保持最新,这将需要大量的重复代码。
我知道这个问题有点含糊,但考虑到它跨越了大部分架构的事实,如果不编写大量几乎不相关的代码,我看不到更好的解释方式。如果您需要更多信息,请询问,我会提供。
非常感谢。