Validating WPF DataGrid using IdataErrorInfo, The DataGrid will not exit cell editing mode until the validation error is resolved.
This is true but can overcome with a work around - using the TextBox in the DataGridTemplateColumn.CellEditingTemplate and DataGridTemplateColumn.CellTemplate.
Define a datatemplate for datagrid
<DataGrid.Resources>
....
<DataTemplate x:Key="EditingValueTemplate">
<TextBox Text="{Binding bindingProp, ValidatesOnDataErrors=True}"
FocusManager.FocusedElement="{Binding RelativeSource= {RelativeSource Self}}"/>
</DataTemplate>
</DataGrid.Resources>
assign this data template to CellTemplate and CellEditingTemplate of the data grid
<DataGrid.Columns>
<DataGridTemplateColumn Header="Value" CellTemplate="{StaticResource EditingValueTemplate}"
CellEditingTemplate="{StaticResource EditingValueTemplate}" />
</DataGrid.Columns>
In case you want to assign tool tip to show error both cases i.e. cell edit mode and mouse hover cell. You need a style
<Style x:Key="DatagridCellToolTip" TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
and include this style as well with the above datagrid i.e.
<DataGrid.Columns>
<DataGridTemplateColumn Header="Value" CellTemplate="{StaticResource EditingValueTemplate}"
CellEditingTemplate="{StaticResource EditingValueTemplate}"
CellStyle="{StaticResource DatagridCellToolTip}"/>
</DataGrid.Columns>