c# – 仅在启用控件时才在WPF中运行验证

我正在将绑定验证应用于.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>

验证失败并禁用控件时,不会显示红色错误边框.

点赞