'Declaration Public MustInherit Class CellValidationRule
'Usage Dim instance As CellValidationRule
public abstract class CellValidationRule
'Declaration Public MustInherit Class CellValidationRule
'Usage Dim instance As CellValidationRule
public abstract class CellValidationRule
All examples in this topic assume that the grid is bound to a list of Composer objects, unless stated otherwise.
<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}"/> <!--A data provider to bind to the Period enum--> <ObjectDataProvider x:Key="periods" MethodName="GetValues" ObjectType="{x:Type local:Period}"> <ObjectDataProvider.MethodParameters> <x:Type TypeName="local:Period"/> </ObjectDataProvider.MethodParameters> </ObjectDataProvider> <!--A cell editor that will be used to edit a Period column with a combo box--> <xcdg:CellEditor x:Key="periodEditor"> <xcdg:CellEditor.EditTemplate> <DataTemplate> <ComboBox BorderThickness="0" MinHeight="22" VerticalContentAlignment="Top" SelectedValuePath="." ItemsSource="{Binding Source={StaticResource periods}}" SelectedValue="{xcdg:CellEditorBinding}"> <ComboBox.Resources> <Style TargetType="Popup"> <Setter Property="TextElement.Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}" /> </Style> </ComboBox.Resources> </ComboBox> </DataTemplate> </xcdg:CellEditor.EditTemplate> </xcdg:CellEditor> </Grid.Resources> <xcdg:DataGridControl ItemsSource="{Binding Source={StaticResource cvs_composers}}" UpdateSourceTrigger="RowEndingEdit"> <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>
Imports System Imports Xceed.Wpf.DataGrid.ValidationRules Imports Xceed.Wpf.DataGrid Imports System.Globalization Imports System.Windows.Controls Namespace Xceed.Wpf.Documentation Public Class PeriodVSCompositionCountCellValidationRule Inherits CellValidationRule Public Overrides Function Validate( ByVal value As Object, ByVal culture As CultureInfo, _ ByVal context As CellValidationContext ) As ValidationResult Dim parentRow As Row = context.Cell.ParentRow Dim compositionCount As Integer Dim period As Period If context.Cell.FieldName = "Period" Then period = CType( value, Period ) compositionCount = CInt( parentRow.Cells( "CompositionCount" ).Content ) Else period = CType( parentRow.Cells( "Period" ).Content, Period ) compositionCount = CInt( value ) End If If( ( period = Period.Modern ) And ( compositionCount > 40 ) ) Then Return New ValidationResult( False, "Composition count must be less than 50 when the period is set to Modern." ); End If Return ValidationResult.ValidResult End Function End Class End Namespace
using System; using Xceed.Wpf.DataGrid.ValidationRules; using Xceed.Wpf.DataGrid; using System.Globalization; using System.Windows.Controls; namespace Xceed.Wpf.Documentation { public class PeriodVSCompositionCountCellValidationRule : CellValidationRule { public override ValidationResult Validate( object value, CultureInfo culture, CellValidationContext context ) { Row parentRow = context.Cell.ParentRow; int compositionCount; Period period; if( context.Cell.FieldName == "Period" ) { period = ( Period )value; compositionCount = ( int )parentRow.Cells[ "CompositionCount" ].Content; } else { period = ( Period )parentRow.Cells[ "Period" ].Content; compositionCount = ( int )value; } if( ( period == Period.Modern ) && compositionCount > 40 ) return new ValidationResult( false, "Composition count must be less than 50 when the period is set to Modern." ); return ValidationResult.ValidResult; } } }
System.Object
Xceed.Wpf.DataGrid.ValidationRules.CellValidationRule
Xceed.Wpf.DataGrid.ValidationRules.CellEditorValidationRule
Xceed.Wpf.DataGrid.ValidationRules.EventCellValidationRule
Xceed.Wpf.DataGrid.ValidationRules.PassthroughCellValidationRule
Target Platforms: Windows 11, Windows 10, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
CellValidationRule Members
Xceed.Wpf.DataGrid.ValidationRules Namespace