WPF验证规则是否仍要更新

WPF验证规则是否仍要更新,wpf,validation,binding,Wpf,Validation,Binding,我的视图上有一个文本框,其中有一个验证规则: public class EmptyStringRule : ValidationRule { public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo) { if(String.IsNullOrEmpty(value.ToString())) return

我的视图上有一个文本框,其中有一个验证规则:

public class EmptyStringRule : ValidationRule
{
    public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
    {
       if(String.IsNullOrEmpty(value.ToString()))
           return new ValidationResult(true,"String Cannot be empty");
        return new ValidationResult(true,null);
    }
}
输入空字符串时。绑定属性未更新,文本框标记为红色。我需要更新源代码,但仍保留文本框周围的标记。EF随后再次验证输入


如何执行此操作?

您可以通过将验证规则的ValidationStep属性设置为UpdatedValue来执行此操作:

<Binding.ValidationRules>
    <c:EmptyStringRule ValidationStep="UpdatedValue"/>
</Binding.ValidationRules>

通过此设置,当文本设置为空时,它实际上应该更新MyStringProperty,但仍将进行验证。

您可以通过将验证规则的ValidationStep属性设置为UpdatedValue来完成此操作:

<Binding.ValidationRules>
    <c:EmptyStringRule ValidationStep="UpdatedValue"/>
</Binding.ValidationRules>
通过此设置,当文本设置为空时,它实际上应该更新MyStringProperty,但仍将进行验证