WPF:屏幕验证

时间:2010-01-26 17:06:03

标签: wpf validation

您建议使用哪种技术或库进行屏幕验证。也就是说,验证对用户来说非常明显。

我的要求:

  1. 验证必须能够向用户指明哪些字段存在问题。
  2. 验证必须能够向用户表明如何解决问题。
  3. 验证必须支持比较文字,例如TextboxA>文本框B.
  4. 验证必须支持自定义逻辑,例如“如果CheckBoxC已选中,则ListBoxD必须为空”。
  5. 有时,尽管并非总是如此,但即使验证失败,用户也可以保存记录。

2 个答案:

答案 0 :(得分:3)

使用IDataErrorInfo和ValidationRules的组合应符合您的所有条件。

1& 2 - 可以使用标准WPF验证显示技术轻松处理。有关背景信息,我读过Josh Smith's MSDN article,特别是他展示了几种处理显示验证信息的方法。

3& 4 - 可以通过IDataErrorInfo轻松处理。此界面允许您执行任何所需的逻辑以显示验证,并且可以在验证规则中组合多个属性。

5 - 这只是跟踪哪些规则阻止保存,哪些不阻止。你需要直接处理这个问题,但IDataErrorInfo在这里可以提供帮助,因为你可以使用一个允许保存的已知集合,并且让其他所有问题都阻止它。

对于简单的情况,验证规则可以简化生活。然而,They can be combined with IDataErrorInfo是针对困难案例的简单和扩展逻辑的完美组合。

答案 1 :(得分:0)

您可能会发现 WPF Application Framework (WAF) BookLibrary EmailClient 示例应用程序很有趣。他们将IDataErrorInfo接口与.NET DataAnnotations属性结合使用,以定义验证规则。