我正在将绑定验证应用于.NET 4.0中的一些
WPF控件.目前,我的控件变为红色并在它们失败某组ValidationRules时显示一条警告消息.问题是,即使他们被禁用,他们仍然无法通过各自的验证.这可能会误导最终用户,因此我只想在启用控件的情况下运行验证.我不确定如何实现此功能.
我通过Binding.ValidationRule验证,它通过特定的验证类连接.
编辑:
显示错误的原因是我的验证检查字段是否为空.加载表单时,字段为空并且即使它们被禁用也无法通过验证.
最佳答案 让我回答我自己的问题:
我的研究真的没办法解决这个问题.禁用控件时不显示验证错误的最佳方法是创建Validation.ErrorTemplate,该控件在控件未通过验证并被禁用时是特殊的.我用这种技术来解决这个问题.
有点像:
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<DockPanel>
<Border BorderBrush="Gray" BorderThickness="0">
<AdornedElementPlaceholder/>
</Border>
</DockPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
验证失败并禁用控件时,不会显示红色错误边框.