我在文本框上有一个ValidationRule。当ValidationResult返回true时,将触发文本框绑定到的属性上的集合。
当ValidationResult返回false时,不会触发该集。
关于它为什么不被射击以及如何解决它的任何指示,非常感谢。
由于
乔
这是文本框的XAML:
<Binding Path="CorrectEntry" UpdateSourceTrigger="PropertyChanged" NotifyOnValidationError="True" >
<Binding.ValidationRules>
<localValidation:CorrectEntryValidationRule x:Name="validator" ValidatesOnTargetUpdated="True"> <localValidation:CorrectEntryValidationRule.RangeContainer>
<localValidation:CorrectEntryRangeContainer
DataContext="{Binding
Source={StaticResource DataContextBridge},
Path=DataContext}"
Min="{Binding Lower}"
Max="{Binding Upper}"
/>
</localValidation:CorrectEntryValidationRule.RangeContainer>
</localValidation:CorrectEntryValidationRule>
</Binding.ValidationRules>
</Binding>
答案 0 :(得分:2)
请参阅验证规则的文档。根据设计,当验证规则返回false时,属性不会被设置。
如果您希望设置Propery,则不应使用验证规则。您应该从IDataErrorInfo继承您的类。并从该接口实现2个方法。
答案 1 :(得分:1)
这是正常且通常需要的行为,如果您的数据无效,则不希望将其保存在模型中。
(如果您想通过设置器中抛出的异常进行验证,可以使用a property on the binding)