ValidationRule是否能够阻止更新控制状态

本文关键字:更新 控制 状态 是否 ValidationRule | 更新日期: 2023-09-27 17:58:53

也许我没有正确使用ValidationRule,如果是,请告诉我正确的方法。

目前,我已经实现了从ValidationRule继承的类WarningForUncheckRule,并将其绑定到绑定。

<cc:StarCheckBox>
    <cc:StarCheckBox.IsChecked>
        <Binding>
            <Binding.Path>IsFavorate</Binding.Path>
            <Binding.ValidationRules>
                <vm:WarningForUncheckRule />
            </Binding.ValidationRules>
            <Binding.Mode>TwoWay</Binding.Mode>
        </Binding>
    </cc:StarCheckBox.IsChecked>
</cc:StarCheckBox>

我实现了代码并返回false作为结果(此处用于测试目的):

public class WarningForUncheckRule : ValidationRule
{
    public override ValidationResult Validate(object value, 
                                              CultureInfo cultureInfo)
    {
        return new ValidationResult(false, null);
    }
}

我的问题是,如果我在这里返回false,则只有错误UI显示并显示错误消息,但UI状态仍然更改

是否可以使用false ValidateResult来阻止UI更新

如果没有,在绑定中是否有其他方法可以实现这一点?

ValidationRule是否能够阻止更新控制状态

调用验证后视图模型上更改的属性,它将向编辑前的UI返回旧值。