所以我试图在WPF中创建一个文本框派生的自定义控件,这将允许我提供范围进行验证。所以我可以使用我的控件,如下面的
<RangeValidatedTextBox Min="0" Max="100" Text="{Binding SomeProperty}" />
现在我找到了关于如何实现文本框验证的this MSDN Article,这是我作为参考使用的。
现在自定义控件的问题在于你有能力提供Style,你可以提供Template
,在这种情况下将由TextBox
定义,所以我的Generic中有以下样式的.xaml
<Style TargetType="{x:Type customControls:ScoreTextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
现在,我想使用上面的Style来提供Binding.ValidationRules
属性值,我试过这个
<Setter Property="Text">
<Setter.Value>
<TemplateBinding Property="Text" >
<TemplateBinding.ValidationRules>
<validation:MyRangeValidationRule
Min="{TemplateBinding Min}"
Max="{TemplateBinding Max}"
></validation:MyRangeValidationRule>
</TemplateBinding.ValidationRules>
</Setter.Value>
</Setter>
但上面给出了编译错误,因为TemplateBinding
不会ValidationRules
。有什么办法可以创建一个自定义控件,基本上只是一个TextBox
具有特定类型的绑定验证器?