我创建了一个继承自ValidationRule的IntegersValidationRule类。现在我不知道我应该在XAML中编写什么代码。这就是我所拥有的:
<TextBox Name="defaultTxt"
Height="23" Width="200">
<TextBox.Text>
<Binding UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<what:IntegersValidationRule/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
我知道要么我是如此愚蠢以至于我在许多教程中都无法理解Binding属性中的Path意味着什么,为什么我们应该在没有绑定时使用Binding以及我应该使用什么而不是'what'字在Binding.ValidationRule中。
答案 0 :(得分:2)
what
是xmlns
(see MSDN),需要指向声明验证规则类的命名空间,例如。
xmlns:what="clr-namespace:MyApp.MyValidationRules"
如果你没有添加Path
( - 如果你不理解它怎么读? - ),绑定将绑定到当前的DataContext
,无论那是什么在你的情况下。
答案 1 :(得分:1)
问题1:验证器处理绑定。这就是您在绑定上指定规则的原因。然后,只要将值更新为源(控件绑定的对象),就会检查规则。
问题2:见H.B.的回答