我有一个同时拥有
ValidatesOnDataErrors = true
和
ValidatesOnExceptions = true
是的。我也有东西在看
Validation.Errors
此绑定的集合。
用户输入的值是可转换的(没有异常),但无效(IDataerrorInforeportsanerrormessage)。错误出现在错误集合中,并按预期显示。
然后,用户输入一个不可转换的值(引发异常)。idataerrorinfo仍然报告与以前相同的错误(因为模型值没有更改)。
在后一种情况下,我更希望在列表中单独看到异常错误,但同时接受异常和数据错误(以任何顺序)。
然而,实际发生的情况是,只有数据错误才会出现在列表中,这最终会给用户一条误导性的错误消息(因为这是他们输入的前一个值的错误,而不是当前值的错误)。
在内部跟踪时,当第二个用户操作发生时,异常错误会添加到列表中,然后再次删除并替换为数据错误。这两个错误决不能同时出现在列表中。
有什么办法让你的行为不受影响吗?
(后退一步:我试图实现的是结合IDataerrorInfoValidation(因为它更方便进行域级测试),但仍然关注UI异常(否则它会忽略用户键入完全愚蠢的内容时的情况)。我不想让每个vm属性都变成字符串或其他这样的胡说八道。)