也许我没有正确使用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更新?
如果没有,在绑定中是否有其他方法可以实现这一点?
调用验证后视图模型上更改的属性,它将向编辑前的UI返回旧值。