示例来自How to disable a Button on TextBox ValidationErrors in WPF
效果如图
WPF 验证表单方法2_验证表单

继承ValidationRule实现验证类

public class OverThirteenValidationRule : ValidationRule
{
    public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
    {
        if (value != null)
        {
            int age = 0;
            try
            {
                age = Convert.ToInt32(value);
            }
            catch
            {
                return new ValidationResult(false, "You must be older than 13!");
            }

            if (age > 13)
                return ValidationResult.ValidResult;

        }
        return new ValidationResult(false, "You must be older than 13!");
    }
}

通过MultiDataTrigger绑定提交按钮的IsEnabled属性

通过Path获得每个输入框的Validation.HasError值,当所有TextBox的HasError=false时,设置提交按钮可用

显示提示信息同样通过Validation.Errors的值判断是否显示提示信息,这里用了一个Converter(ToVisibility),判断错误信息个数是否为0,为0则不显示,不为0则显示显示内容为(Validation.Errors)[0].ErrorContent,即第一个错误内容,即如果有多个验证、有多个报错内容也只显示第一个>示例代码ValidationRule 类参考资料How to: Implement Binding ValidationHow to disable a Button on TextBox ValidationErrors in WPFAccessing WPF control validation rules from code" _ue_custom_node_="true">