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? :(