也许我没有正确使用ValidationRule
,如果是这样,请告诉我正确的方法。
目前,我已经实现了一个继承自WarningForUncheckRule
的类ValidationRule
,并将其绑定到绑定。
<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状态仍会更改。
是否可以使用false
ValidateResult 阻止用户界面更新?
如果不是,是否还有其他方法可以实现此目的?
答案 0 :(得分:0)
验证后调用viewmodel上的属性已更改,它应将旧值返回到编辑前的UI。