对所有WPF文本框实施验证

时间:2019-03-13 10:38:08

标签: c# wpf

我的程序中有数十个文本框,它们都可以使用一个通用的验证规则。规则本身不是很复杂:只会阻止使用分号(;)。

是否存在实现它的方法(比对所有TextBox手动应用相同规则更容易)?

编辑:我看不到它与How to use IDataErrorInfo.Error in a WPF program?有何关系-将验证应用于文本框(或在工具提示中显示错误)没有问题。

1 个答案:

答案 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}" />