【发布时间】: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