在WPF中(暂时)禁用验证

6
当一个类实现了IDataErrorInfo接口并且这个类是表单绑定的一部分时,有没有一种方法可以暂时禁用与绑定相关联的验证呢?
例如,如果我不想在我的类的属性中允许空字符串,在表单打开时,绑定的控件将被标记为具有错误(默认情况下为红色边框)。我认为立即将输入标记为错误(甚至用户还没有机会输入任何内容)有点笨拙。有没有什么办法解决这个问题呢?
我搜索了大部分下午,但我似乎找到的都是如何禁用提交按钮直到所有输入都有效(这并不是我想要的)。
1个回答

4
在实现IDataErrorInfo接口的类中设置一个标志,控制何时进行验证,例如DoValidation;
当标志为false时,您将使IDataErrorInfo报告没有错误(即返回null等)。
在视图初始化期间,您将在模型中将DoValidation标志设置为false,然后让视图执行所有数据绑定。
在视图“加载”之后,您将把DoValidation标志设置为true ... 从那时起...对数据的更改将导致错误指示符出现,如果值仍然无效。
有关如何构建IDataErrorInfo代码的详细信息,请参见此其他帖子:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接