Validation rule in WPF


ValidationRules is a class, which provides a way to create a custom rule in order to check the validity of a user input. These ValidationRules are specific to WPF, they did not get carried over to Silverlight , Windows phone or Windows 8 XAML technologies.

What you do is define a class that inherits from a ValidationRule base class, and then you override a validate method that’s an abstract method in the base class. That Validate method returns a ValidationResult Object, which includes a flag to indicate success or failure, a Boolean, and an error message that can be associated with it. Once you have the ValidationRule defined, you go and you hook it up to a ValidationRules collection that’s on a binding.


Create a WPF application. Create a class that implements ValidationRule and override the Validate method. Here you can write the validation rule for your application. Give a regular expression to validate email id.

  public class RegexValidation : ValidationRule
        public override ValidationResult Validate(object value, CultureInfo cultureInfo)
            Regex regex = new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$");
            Match match = regex.Match(value.ToString());
            if (match == null || match == Match.Empty)
                return new ValidationResult(false, "Please enter valid email");
                return ValidationResult.ValidResult;

Inside MainWindow class, create one property

 public partial class MainWindow : Window
        public MainWindow()
        private string email;
        public string Email
            get { return email; }
            set { email = value; }

In XAML , Bind the property and specify the validation rule here.

            <TextBox Margin="5" Height="30"
                     Width="200" >
                    <Binding Path="Email" ElementName="thiswindow" >
            <TextBox Margin="5" Height="30" Width="200" ></TextBox>

Run the application and type any invalid email address and hit enter, you can see a red box on the email address textbox. This is coming from our regular expression validation.

You might also like:

The following two tabs change content below.

Tom Mohan

Tom Mohan is a technologist who loves to code and build. He enjoys working on Microsoft Technologies. Tom specializes in ASP.NET MVC, Web API , Azure, C# ,WPF, SQL etc and holds a Bachelor engineering degree in Computer Science. Certification : MCSD , MCTS