禁用对已禁用文本框的验证

时间:2015-01-13 17:40:37

标签: c# wpf

我在WPF应用程序中进行了绑定验证,但现在由于某些规则,某些文本框被禁用,验证显示方式相同。有没有办法在禁用控件时禁用验证,并在启用时重新打开它们?

1 个答案:

答案 0 :(得分:0)

您可以在禁用控件时删除验证模板。

注意,这并不妨碍验证规则的运行,这只会删除验证模板。

如果您使用的是ValidationRule,则可以获取对文本框的引用,并检查文本框是否已启用。

将以下内容放在文本框样式中:

<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>