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

本文关键字:验证 文本 | 更新日期: 2023-09-27 18:37:19

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

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

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

请注意,这不会阻止验证规则运行,这只会删除验证模板。

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

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

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