【发布时间】:2011-08-21 21:07:26
【问题描述】:
我在一个 WPF 应用程序中有许多文本框,我在这些应用程序上设置了一些验证。
在加载时,应用程序会反序列化 WPF 窗口控件所绑定到的类。
我有一个 ValidationRule(例如)测试文件是否存在。如果我没有设置 ValidatesOnTargetUpdated,那么当我更改(绑定)文本属性时,相应的 TextBox 会验证,我会看到(默认)红色边框出现,并且工具提示 ({Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors).CurrentItem.ErrorContent}) 显示错误消息。
我希望控件在绑定而不是 propertychanged 上进行验证,因此我将 ValidatesOnTargetUpdated 设置为 true,并且可以在调试时看到 validationRule 触发。
我的问题是,在ValidatesOnTargetUpdated="True" 时忽略(默认)ValidationTemplate,尽管 ValidationRule 触发了。
我可以看到工具提示 - 它显示正确的错误消息,但边框未显示为红色;这似乎被忽略了。
任何想法为什么会发生这种情况?
【问题讨论】:
标签: wpf validation textbox validationrules