(暂时)在WPF中禁用验证

Jas*_*ier 5 validation wpf

当一个类实现IDataErrorInfo接口并且该类是绑定到表单的一部分时,有没有办法暂时禁用与绑定相关的验证?

例如,如果我不想在我的类的属性中允许空字符串,则在窗体打开时,绑定控件被标记为有错误(默认情况下带有红色边框).我认为立即将输入标记为有错误(在用户甚至有机会输入内容之前)有点笨拙.有没有解决的办法?

我在下午的大部分时间都进行了搜索,但我似乎想出的是如何禁用提交按钮,直到所有输入都有效(这不是我真正想要的).

Col*_*ith 4

在实现 IDataErrorInfo 的类中有一个标志,用于控制何时完成验证,例如 DoValiation;

当标志为 false 时,您将使 IDataErrorInfo 报告没有错误(即返回 null 等)。

在视图初始化期间,您可以在模型中将 DoValidation 标志设置为 false,然后让视图对您的数据执行所有绑定。

视图“加载”后,您可以将 DoValidation 标志设置为 true...从那时起...如果值仍然无效,对数据的更改将导致出现错误指示器。

有关如何构建 IDataErrorInfo 代码的更多详细信息,请参阅另一篇文章: