【问题标题】:WPF 4.0 validation errorWPF 4.0 验证错误
【发布时间】:2012-12-11 22:28:21
【问题描述】:

我们最近将 .NET 3.5 SP1 应用程序升级到 .NET 4.0 并注意到验证似乎已在所有控件中打开(或报告),例如当输入字母时,绑定到模型中 int 属性的 TextBox 的 Text 属性现在将在其周围获得红色边框。

在 3.5 中,在其中写入一个字母不会高度带有红色边框的文本框,它会被默默地忽略。

在 4.0 中,这在 DataGrid 中给我们带来了问题,因为它现在将整个网格更改为只读,直到用户在之前静默清除值时修复错误。如果该行随后以编程方式被删除,则整个网格将保持只读状态。

由于我们不使用WPF验证框架,有没有办法恢复3.5的行为?

【问题讨论】:

    标签: wpf validation datagrid


    【解决方案1】:

    我认为你得到这种行为是因为你的绑定中有ValidatesOnDataExceptions=True。将其设置为 false 或留空应该可以解决问题(AFAIK,默认为 false)。

    【讨论】:

    • 感谢您的回复。我们没有 ValidatesOnDataExceptions=True 或任何与 WPF 验证相关的代码,因为我们没有使用该功能。将它和/或 ValidatesOnDataErrors 设置为 False 似乎也没有任何作用。红色边框仍然存在。这也发生在一个新项目中。
    • 你是对的。我刚刚测试过,我遇到了同样的问题。我认为这是一个错误,因为即使设置 UpdateSourceExceptionFilter 并返回 null(这意味着它不应该添加任何验证错误),TextBox 也会认为存在验证错误。我建议您改为提供自定义转换器
    猜你喜欢
    • 1970-01-01
    • 2013-02-18
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 2010-09-12
    • 2011-03-10
    • 1970-01-01
    相关资源
    最近更新 更多