I have textbox those name are checkDescriptionTxtBox and parameterTxtBox. Both are using same validation rule such are available in TextBoxValidator.cs. But the one difference is ValidationStep="UpdatedValue" added in parameterTxtBox. checkDescriptionTxtBox validation working as expected but Why parameterTxtBox validation not working?Could you please help anyone.
i want to validate the value after source property has been updated. I have debugged the Validate method. During checkDescriptionTxtBox validation parameter value passing as string but when parameterTxtBox validation parameter value not passing as string instead difference binding value. So i want to validate the value after the source property has been updated. How to achieve this?
<TextBox Name="checkDescriptionTxtBox" Width="700" TextWrapping="Wrap" AcceptsReturn="True" ScrollViewer.VerticalScrollBarVisibility="Auto" Validation.ErrorTemplate="{StaticResource validationErrorTemplate}">
<TextBox.Text>
<Binding Path="CheckDescription" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<v:TextBoxValidator></v:TextBoxValidator>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
<TextBox Name="parameterTxtBox" Margin="10,0,0,0" Width="200" Height="20" Validation.ErrorTemplate="{StaticResource validationErrorTemplate}">
<TextBox.Text>
<Binding Path="ParameterValue" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" >
<Binding.ValidationRules>
<v:TextBoxValidator ValidationStep="UpdatedValue"></v:TextBoxValidator>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
TextBoxValidator.cs
public class TextBoxValidator : ValidationRule
{
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
if (String.IsNullOrEmpty(value.ToString().Trim()))
return new ValidationResult(false, "Value cannot be empty");
return ValidationResult.ValidResult;
}
}