Validations in WPF

Validating textboxes in WPF. The validtion is checked at LostFocus event of TextBox

        public void ValidateTextbox(ref TextBox ctrltxt, string p)
        {
            int count = 0;
            string errormessage=string.Empty;
            BindingExpression expression = ctrltxt.GetBindingExpression(TextBox.TextProperty);
            expression.UpdateSource();
            if (true) // check validation condition or reg expression here
            {
                    ValidationError error = new ValidationError(new ExceptionValidationRule(), expression, errormessage, null);
                    Validation.MarkInvalid(expression, error);
 
            }

        }

XAML code for the TEXTBOX is as below

 <TextBox Name="FieldName" HorizontalAlignment="Stretch" 
VerticalAlignment="Stretch"
Text="{Binding Path=DisplayData, ValidatesOnDataErrors=True ,NotifyOnValidationError=True , UpdateSourceTrigger=LostFocus, ValidatesOnExceptions=True}"
Grid.Column="1"
Margin="4,4,4,4" Validation.ErrorTemplate="{StaticResource InputErrorTemplate}" >
</TextBox>

InputErrorTemplate is as below

        <ControlTemplate x:Key="InputErrorTemplate">
<DockPanel>
<Border Name="validationBorder" BorderBrush="Red" BorderThickness="2" Padding="1" CornerRadius="3">
<Border.Resources>
<Storyboard x:Key="_blink">
<ColorAnimationUsingKeyFrames AutoReverse="True" BeginTime="00:00:00" Storyboard.TargetName="validationBorder" Storyboard.TargetProperty="(Border.BorderBrush).(SolidColorBrush.Color)" RepeatBehavior="00:00:02">
<SplineColorKeyFrame KeyTime="00:00:00.5" Value="#00FF0000"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</Border.Resources>
<Border.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard Storyboard="{StaticResource _blink}" />
</EventTrigger>
</Border.Triggers>
<AdornedElementPlaceholder/>
</Border>
</DockPanel>
</ControlTemplate>




Ebook Download
View all
Learn
View all