繁体   English   中英

WPF中的验证 - 自定义验证规则或IDataErrorInfo

[英]Validation in WPF - Custom validation rule or IDataErrorInfo

作为一个新的WPF程序员,我无法找到两种不同的方式来验证用户输入:

编写自定义验证规则以实现IDataErrorInfo的优缺点是什么,反之亦然? 什么时候我比较喜欢一个?

更新:

虽然我已经得到了答案,但我找到了可能对其他人有帮助的相关文章

基本上,如果实现IDataErrorInfo ,则验证在绑定对象中实现,而如果实现验证规则,则验证在附加到绑定的对象中实现。

就个人而言,如果你正在使用MVVM,我认为除了IDataErrorInfo之外,你必须疯狂地使用任何东西。 希望验证存在于视图模型中。 如果它在您的视图模型中,它是集中的,并且它是可测试的。 如果它在您的视图中,那么您的验证逻辑可能是错误的或丢失的,找到它的唯一方法是手动测试您的视图。 这是可避免的错误的巨大潜在来源。

有些地方使用验证规则是有意义的 - 例如,如果您正在围绕哑对象构建UI(例如, XmlDataSource )。 但对于大多数生产应用程序,我不会接近它。

IDataErrorInfo的

  • 验证逻辑保持在视图模型中,易于实现和维护
  • 完全控制viewmodel中的所有字段

验证规则

  • 在单独的类中维护验证规则
  • 增加可重用性。 例如,您可以在整个应用程序中实现必需的字段验证类重用它。

我的意见是,对于常见的验证,如必要的字段验证,电子邮件地址验证,您可以使用验证规则。 如果您需要进行范围验证等自定义验证,或使用IDataerrorinfo进行自定义验证。

您实现IDataErrorInfo以便能够使用数据绑定与eas。 您仍然可以构建自定义验证规则。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM