<Binding Path="AttachmentName" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<valid:AttachmentNameValidationRule ValidationStep="RawProposedValue" ValidatesOnTargetUpdated="True"/>
</Binding.ValidationRules>
</Binding>
验证器检查输入的值是否格式正确:file.extension。不幸的是,当控件IsEnabled == false时,textBox为红色(因为内容为&#34;&#34;)。
知道如何禁用验证吗?用x:referense尝试了一些东西并将UIElement传递给验证器,但是没有用。
答案 0 :(得分:3)
原始赠送金额归@jdoow的答案中的link。
使用触发器很容易实现,当禁用控件时将Validation.ErrorTemplate
设置为null。
该属性仍然有效,但用户未收到有关验证结果的通知。
<Style TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="True">
<Setter Property="Validation.ErrorTemplate" Value="{StaticResource ErrorTemplate}"/>
</Trigger>
</Style.Triggers>
</Style>
答案 1 :(得分:0)
您可以参考MS知识库中的来源。
Enabling And Disabling Validation based on IsEnabled Property