我有一个继承自文本框的控件
public class MyTextBox : TextBox
这有一个样式
<Style TargetType="{x:Type Controls:MyTextBox}">
其中一个 Setter 是
<Setter Property="Template">
我希望能够在模板中设置
Binding.ValidationRules
,从而影响此类型文本框的所有实例。因此,我可以为数字、日期、邮政编码等创建文本框,或者其他任何我想要的内容。我不想每次创建文本框时都设置验证规则。我只想说我需要一个
NumericTextBox
,并且它会按照模板中设置的方式进行验证。这是可能的吗?
到目前为止,我所看到的都是在控件的每个实例上设置ValidationRules,例如:
<TextBox x:Name="txtEMail" Template={StaticResource TextBoxErrorTemplate}>
<TextBox.Text>
<Binding Path="EMail" UpdateSourceTrigger="PropertyChanged" >
<Binding.ValidationRules>
<local:RegexValidationRule Pattern="{StaticResource emailRegex}"/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
(来自{{link1:http://www.wpftutorial.net/DataValidation.html}})
该网页介绍了WPF中的数据验证,包括如何使用ValidationRule和IDataErrorInfo接口来实现数据验证。它还解释了如何在XAML中使用数据验证,并提供了一些示例代码。