1

I'm new to WPF. I was trying to apply a validation rule to two text boxes in order to compare if their values are the same. I came across BindingGroups and decided to try it out. But now, I find that my validation rule isn't getting triggered. Could you please tell me what I am missing here?

Here's my code:

XAML:

    <UserControl>
    <UserControl.BindingGroup>
    <BindingGroup Name="FormBindingGroup">
    <BindingGroup.ValidationRules>
    <local: confirmemailvalidator ValidationStep="ConvertedProposedValue"/>
    </BindingGroup.ValidationRules>
    </BindingGroup>
    </UserControl.BindingGroup>


    <Dockpanel> 
    <Grid>
       <Grid>
       <Label Content="Enter email"/>
       <TextBox>
       <TextBox.Text>
       <Binding Path="email" BindingGroupName="FormBindingGroup"/>
       </TextBox.Text>
       </TextBox>
       </Grid>
       <Grid>
       <Label Content="Confirm email"/>
       <TextBox>
       <TextBox.Text>
       <Binding Path="confirmEmail" BindingGroupName="FormBindingGroup"/>
       </TextBox.Text>
       </TextBox>
       </Grid>
    </Grid>
    </DockPanel>
    </UserControl>

Validator code

    class confirmemailvalidator: ValidationRule
    {
    public override ValidationResult Validate
    (objectvalue,CultureInfo cultureInfo)
    {
    ValidationResult result = new ValidationResult(true, null);
    BindingGroup bindingGroup = (BindingGroup)value;

    string originalEmail = bindingGroup.Items[0].ToString();
    string confirmEmail = bindingGroup.Items[1].ToString();

    if (!originalEmail.Equals(confirmEmail))
    {
    result = new ValidationResult(false, this.ErrorMessage);
    }
    return result ;
    }

    }
    }

I have implemented validation using ValidationRules for individual textboxes (to check input format) and it works fine. Why is the Validate method of this BindingGroup not getting triggered? :(

Ashwini Nayak
  • 17
  • 1
  • 6

0 Answers0