是否可以将ValidationRules和INotifyDataErrorInfo的组合用于wpf验证?

问题描述 投票:6回答:1

在WPF中,有3种验证方法:

  • 验证规则
  • IDataErrorInfo
  • INotifyDataErrorInfo

是否可以同时使用它们的组合?对于我的需求,我想使用INotifyDataErrorInfo的灵活性来验证新规则,但不想干扰要验证的同一对象的现有ValidationRules。

c# wpf validation idataerrorinfo inotifydataerrorinfo
1个回答
3
投票

1。混合不同的错误源

是的,您可以混合三种引用的验证方法:

  • [ValidationRules适合GUI(表面)验证
  • IDataErrorInfo在视图模型/业务对象上实现。适合进行更多面向业务的验证]
  • INotifyDataErrorInfo也在视图模型/业务对象上实现。它增加了给定字段上可能出现多个错误的可能性,并且还增加了异步验证(即服务器或线程可能需要一些时间来回答该验证)。

最后一个错误源的实现时间更长了>]

2。考虑错误]

最难的是,如果要防止在数据无效的情况下关闭窗口,则要考虑不同的错误源。

ValidationRules错误必须在GUI绑定中查找,因为无效数据不会到达业务对象/ ViewModel。

[IDataErrorInfoINotifiDataErrorInfo可以在ViewModel层中查看。

问候

© www.soinside.com 2019 - 2024. All rights reserved.