我的程序中有数十个文本框,它们都可以使用一个通用的验证规则。规则本身不是很复杂:只会阻止使用分号(;)。
是否存在实现它的方法(比对所有TextBox手动应用相同规则更容易)?
编辑:我看不到它与How to use IDataErrorInfo.Error in a WPF program?有何关系-将验证应用于文本框(或在工具提示中显示错误)没有问题。
答案 0 :(得分:0)
您可以编写自定义标记扩展名,以扩展Binding
并添加ValidationRule
:
public class CustomBinding : Binding
{
public CustomBinding(string path)
: base(path)
{
this.ValidationRules.Add(new YourValidationRule())
}
}
当您在XAML中设置绑定时,您将使用此版本而不是通常的{Binding}
,例如:
<TextBox Text="{local:CustomBinding SourceProperty}" />