如何在Textbox派生的自定义控件中定义绑定验证规则

时间:2015-01-07 15:22:49

标签: wpf validation

所以我试图在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具有特定类型的绑定验证器?

0 个答案:

没有答案