【问题标题】:WPF Validation with ContentPresenter使用 ContentPresenter 进行 WPF 验证
【发布时间】:2010-04-22 23:35:33
【问题描述】:

我有一个需要验证某些字段的 WPF 用户控件。它绑定到实现 IDataErrorInfo 的类。

当我在另一个已经打开的窗口中将用户控件设置为我的 ContentPresenter 的内容时,我可以看到正在发生验证并返回错误消息,但是,我没有得到任何验证装饰器 - 例如默认的红色轮廓。

如果我输入并离开该字段(触发重新验证),则会出现验证装饰器。

另外,如果我在它自己的窗口中显示用户控件,它会立即显示验证装饰器。

(我正在使用 Caliburn IResults 在下面执行此操作,例如 Show.Dialog<VM>(); 但我怀疑这无关)

任何人都可以提供任何建议,为什么验证装饰器没有立即出现。 (我在我的 ContentPresenter ContentChanged 上猜到了动画,但是,我已将其删除,但仍然遇到问题。

谢谢, 克里斯

【问题讨论】:

  • 您使用的是 .NET 3.5 还是 4?我想说这个“错误”在 WPF 4 中已修复,但我不能肯定地说。您能否提供一些源代码,我将在 .NET 4 中尝试一下?
  • 布伦特 - 你是对的 - 我用 4 试过自己,没问题,而 3.5 没用。您对 3.5 的解决方法有什么建议,或者我应该升级吗?非常感谢 - 花了太长时间试图解决这个问题。 dl.dropbox.com/u/120257/ValidationSample.zip
  • 除了查看这篇文章之外,我不知道有什么解决方法...forums.lhotka.net/forums/p/8573/40940.aspx我查看了您的源代码,发现您遇到了同样的问题。就个人而言,我会升级到 .NET 4 而不是实施解决方法,但这只是我自己。祝你好运!
  • 升级完成 - 感谢您的帮助 - 如果您想添加答案,我会将其标记为然后已回答!

标签: wpf validation binding idataerrorinfo caliburn


【解决方案1】:

这是 .NET 3.5 中存在的一个已知错误。您也许可以实现 workaround,但如果可行,我建议升级到 .NET 4,因为这将解决您的验证问题。

【讨论】:

    猜你喜欢
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    • 2018-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多