My grid item source is a data type that has only one field identifier (primary key). I linked this field to a column of the Datagrid template, but at runtime, when I passed a duplicate or zero value to this identifier inside the datagrid column, no exception was found, and the datagridtextbox did not detect any errors. My code is below:
<UserControl.Resources> <Style x:Key="errorStyle" TargetType="{x:Type TextBox}"> <Setter Property="Padding" Value="-2"/> <Style.Triggers> <Trigger Property="Validation.HasError" Value="True"> <Setter Property="Background" Value="Red"/> <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}"/> </Trigger> </Style.Triggers> </Style> </UserControl.Resources> <DataGrid AutoGenerateColumns="False" Name="UserDataGrid" VerticalAlignment="Top" Width="381" ItemsSource="{Binding DataTableProperty, Mode=TwoWay, NotifyOnTargetUpdated=True, NotifyOnValidationError=True}" IsSynchronizedWithCurrentItem="true" > <DataGrid.Columns> <DataGridTextColumn Header="UserName" EditingElementStyle= "{StaticResource errorStyle}"> <DataGridTextColumn.Binding> <Binding Path="ID" ValidatesOnExceptions="True" ValidatesOnDataErrors="True" NotifyOnValidationError="True" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" > <Binding.ValidationRules> <ExceptionValidationRule ValidationStep="UpdatedValue"></ExceptionValidationRule> </Binding.ValidationRules> </Binding> </DataGridTextColumn.Binding> </DataGridTextColumn> </DataGrid.Columns> </DataGrid>
Can someone help me what am I doing wrong?
source share