我有一个文本框的自定义样式,我只想允许输入数值。
我创建了一个自定义 ValidationRule 来检查这一点。
如果输入有效,我想显示一个绿色边框,如果不是,我想显示一个红色边框。出现错误时红色边框显示正确,但输入正确时绿色显示不正确,它只显示文本框默认值。
我的自定义 ValidationRule 中的 ValidateResult 方法是:
 public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
    {            
        string input = (value ?? String.Empty).ToString();
        double val;
        if (double.TryParse(input, out val))
        {
            return new ValidationResult(true, OkMessage);
        }
        else return new ValidationResult(false, ErrorMessage);
    }
样式和触发器定义:
<Style TargetType="{x:Type TextBox}">
        <Style.Triggers>
            <Trigger Property="Validation.HasError" Value="true">
                <Setter Property="Validation.ErrorTemplate">
                    <Setter.Value>
                        <ControlTemplate>                                
                                <Border BorderBrush="Red" BorderThickness="1"/>
                            </DockPanel>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Trigger>
            <Trigger Property="Validation.HasError" Value="False">
                <Setter Property="Validation.ErrorTemplate">
                    <Setter.Value>
                        <ControlTemplate>                                
                                <Border BorderBrush="Green" BorderThickness="1"/>
                            </DockPanel>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Trigger>
        </Style.Triggers>
    </Style>
正确验证输入后,如何使边框显示为绿色?