C# 针对IDataErrorInfo和新的INotifyDataErrorInfo进行异常验证
我正在尝试不同的验证方法,但新的INotifyDataErrorInfo接口有问题 例如,在写入仅接受10个字符的绑定文本框时。我写了11个字符,然后签了出来。验证开始并将文本框标记为红色等。现在,我不想将此无效值写入此绑定的源,但如果我不这样做,我会立即将文本框中的值重置为最后一个有效值。这就好像绑定在其绑定上执行UpdateTarget操作,即使存在错误 通过使用ValidatesOnExceptions并在setter中抛出异常,我得到了我想要的行为。如果在setter中抛出异常,则绑定不会从源更新其值。这会在文本框中留下无效值,以便我可以使用它使其有效。我认为这比必须在底层对象中存储无效值要好得多 问题是为什么IDataErrorInfo和新的INotifyDataErrorInfo的行为方式是,即使存在错误,它也会从源代码更新目标?我能让它表现得更像ValidatesOnExceptions吗C# 针对IDataErrorInfo和新的INotifyDataErrorInfo进行异常验证,c#,wpf,validation,idataerrorinfo,inotifydataerrorinfo,C#,Wpf,Validation,Idataerrorinfo,Inotifydataerrorinfo,我正在尝试不同的验证方法,但新的INotifyDataErrorInfo接口有问题 例如,在写入仅接受10个字符的绑定文本框时。我写了11个字符,然后签了出来。验证开始并将文本框标记为红色等。现在,我不想将此无效值写入此绑定的源,但如果我不这样做,我会立即将文本框中的值重置为最后一个有效值。这就好像绑定在其绑定上执行UpdateTarget操作,即使存在错误 通过使用ValidatesOnExceptions并在setter中抛出异常,我得到了我想要的行为。如果在setter中抛出异常,则绑定不
由于异步验证等其他功能,我需要INotifyDataErrorInfo…如果需要在将值提交到源之前验证该值,则需要创建自定义验证规则并将ValidationStep设置为RawProposedValue或ConvertedProposedValue 有关更多信息,请参阅和上的文档