使用ContentPresenter进行WPF验证

使用ContentPresenter进行WPF验证,wpf,validation,binding,idataerrorinfo,caliburn,Wpf,Validation,Binding,Idataerrorinfo,Caliburn,我有一个WPF用户控件,它需要验证一些字段。它绑定到实现IDataErrorInfo的类 当我在另一个已经打开的窗口中将用户控件设置为ContentPresenter的内容时,我可以看到正在进行的验证和返回的错误消息,但是,我没有得到任何验证装饰符,例如默认的红色轮廓 如果我输入该字段并将其保留(触发重新验证),则会显示验证装饰器 此外,如果我在自己的窗口中显示用户控件,它会立即显示验证装饰器 (我正在使用Caliburn IResults在下面执行此操作,例如,Show.Dialog();但我

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

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

如果我输入该字段并将其保留(触发重新验证),则会显示验证装饰器

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

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

有谁能提供一些建议,说明为什么验证装饰器没有立即出现。(我猜我的ContentPresenter上的动画ContentChanged,但是,我已经删除了它,仍然遇到问题

谢谢,
Chris

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

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

您使用的是.NET 3.5还是4?我想说的是这个“错误”在WPF 4中是固定的,但我不能确定。你能提供一些源代码,我将在.NET 4中试用吗?布伦特-你是对的-我用4试过了,很好,而3.5不起作用。你对3.5的解决方法有什么建议,或者我应该升级吗。非常感谢-我花了太长时间试图解决这个问题。我不知道有什么好的方法karound除了查看这篇文章外…我查看了你的源代码,发现了与你相同的问题。就我个人而言,我会升级到.NET 4,而不是实施解决方案,但这只是我自己的问题。祝你好运!升级完成-感谢你的帮助-如果你想添加答案,我会将其标记为已回答的答案!你在使用.NET 3吗.5还是4?我想说这个“臭虫”在WPF 4中是固定的,但我不能确定。你能提供一些源代码,我将在.NET 4中试用吗?布伦特-你是对的-我用4试过了,很好,而3.5不起作用。你对3.5的解决方法有什么建议,或者我应该升级吗。非常感谢-我花了太长时间试图解决这个问题。我不知道有什么好的方法karound除了查看这篇文章外…我查看了你的源代码,发现了与你相同的问题。就我个人而言,我会升级到.NET 4,而不是实施解决方案,但这只是我自己的问题。祝你好运!升级完成-感谢你的帮助-如果你想添加答案,我会将其标记为“已回答的答案”!