Xceed Toolkit Plus for WPF v5.0 Documentation
Welcome to Xceed Toolkit Plus for WPF v5.0 / DataGrid, ListBox, Chart, AvalonDock, and PropertyGrid / Datagrid control / Fundamentals / Manipulating Data / Editing and Validating Data / Validation / Cell Error Styles
In This Topic
    Cell Error Styles
    In This Topic
    Prerequisite Knowledge
    DataGrid Fundamentals: Styles

    By default, when the value of a cell fails the validation process, its appearance will change to provide a visual cue that an error has occurred (see Figure 1). To redefine the appearance of a cell when its value is in error, the CellErrorStyle property can be set to a new style, which will be used when a validation error occurs. The error style can be provided at the grid, row, column, or cell levels by setting their respective CellErrorStyle properties (see Example 1).

    When defining a style to use when a cell is in error, a key must be provided otherwise the style will be applied to all objects of the style's specified target type.

    The IsValidationErrorRestrictive property indicates whether the validation error that failed prevents the focus from moving to another row until the error is fixed. Usually, all errors are restrictive; however validation errors reported through IDataErrorInfo are considered non-restrictive. By default, when a non-restrictive error occurs an orange-toned error style will be used.

    Examples

    All examples in this topic assume that the grid is bound to the Orders table of the Northwind database, unless stated otherwise. 

    Example 1: Providing a cell error style

    The following example demonstrates how to provide a new style that will change the foreground color of a cell when its value fails the validation process.

    XAML
    Copy Code
    <Grid xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid"
         xmlns:local="clr-namespace:Xceed.Wpf.Documentation">
      <Grid.Resources>
         <xcdg:DataGridCollectionViewSource x:Key="cvs_composers"
                                            Source="{Binding Source={x:Static Application.Current},
                                                             Path=Composers}"/>
         <Style x:Key="cell_error" TargetType="{x:Type xcdg:DataCell}">
              <Setter Property="Foreground" Value="Red"/>
           </Style>
      </Grid.Resources>
      <xcdg:DataGridControl ItemsSource="{Binding Source={StaticResource cvs_composers}}"
                                                CellErrorStyle="{StaticResource cell_error}">
         <xcdg:DataGridControl.Columns>
           <xcdg:Column FieldName="Period"
                        CellEditor="{StaticResource periodEditor}">                                  
              <xcdg:Column.CellValidationRules>
                 <local:PeriodVSCompositionCountCellValidationRule/>
              </xcdg:Column.CellValidationRules>
           </xcdg:Column>
           <xcdg:Column FieldName="CompositionCount">
              <xcdg:Column.CellValidationRules>
                 <local:PeriodVSCompositionCountCellValidationRule />
              </xcdg:Column.CellValidationRules>
           </xcdg:Column>
         </xcdg:DataGridControl.Columns>
      </xcdg:DataGridControl>
    </Grid>