【发布时间】:2010-06-25 16:26:28
【问题描述】:
我正在尝试找出验证用户输入的最佳方法,并且我一直在研究 ValidationRule 和 IDataErrorInfo。我有一个虚拟机和一个模型,我想确保用户不会将 alpha char 输入到绑定到双精度(或整数)的多个文本框中。
我遇到了 3 个问题
1) 当我使用 ValidationRule 时,该方法会返回一个“ValidationResult”,但它会去哪里?它是否作为财产存储在某个地方?
2) 如果我使用 IDataErrorInfo 并输入一些 alpha char,它永远不会被调用(如果输入了数字)这是预期的吗? *
*(我认为值转换器在这里可能会有所帮助,但我觉得我将两个独立的概念混合在一起)
3) 我真正想做的是在用户单击“保存”并检查所有值时最后进行验证。因此,根据1838300,也许使用这两种方法不是我所需要的。这是正确的,这些真的只用于“动态”验证吗?
我对第 3 点的想法是,如果 ValidationRule 的结果存储在某个地方,我可以检查每个控件的存储位置或存储位置。或者,如果调用了 IDataErrorInfo,我可以为每个控件手动存储一些布尔值并检查它们。
有什么想法或想法吗?
谢谢!
【问题讨论】:
标签: wpf validation data-binding