wpf - 使用 M-V-VM 的 WPF 轻量级验证框架

标签 wpf validation mvvm frameworks

在项目中实现 M-V-VM 并遵循 Karl Shifflett 的建议关于实现验证框架,但真的不想只为验证部分使用完整的框架(如 Ocean)。

您推荐哪种验证框架适用于 M-V-VM 模式?

最佳答案

我只能从不使用完整验证框架的经验中发言,尽管我只是坚持使用 WPF 本身提供的功能。

在我的项目中,我在我的实体/数据类上实现了 IDataError 接口(interface),并实现了 Linq-To-Sql 观察到的部分“OnValidate”方法,然后作为实体类的静态/共享成员,实例化验证 home- brewed helpers 为实现 IDataError.Items 和 OnValidation 方法提供后端逻辑。

然后,只需将 ValidatesOnErrors=True,ValidatesOnExceptions=True 添加到 XAML 中描述的所有绑定(bind)中即可。最终结果是令人鼓舞的——WPF 提供无效数据可视反馈的能力很好,并且实现验证的工作量很小。

我建议遵循将用户输入验证逻辑与您的属性 setter 逻辑分开的趋势。有时,一种属性(property)的有效性取决于另一种属性(property)的状态。将验证逻辑保留在属性 setter 之外,您可以构建最终用户能够输入导致有效状态的两个值的应用程序,而没有任何一个单独的属性 setter 在输入值时拒绝这些值。

关于wpf - 使用 M-V-VM 的 WPF 轻量级验证框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1122610/

相关文章:

php - 有没有办法在 PHP 中对 XML 流进行 XSD 验证

ruby - 使用 sinatra 和 datamapper 进行延迟注册

WPF 对齐拉伸(stretch)

wpf - 将 drawing.bitmap 转换为 windows.controls.image

c# - .NET 2.0 (WinForms) 的组件应用程序 block - 有哪些新版本?

c# - 检查 XML 的预期结构

c# - 需要积极地将刷新数据从模型推送到 View 的 WPF 应用程序的任何特定体系结构解决方案?

c# - 使用 MVVM 模式和 Unity 引擎作为前端

wpf - MVVM 交互下降触发器

wpf - 关于 WPF 的 CystalReports 错误