In the same series as the
DataGrid validation scheme issues, I get an exception when
a cell is invalid the DataContext changes
This happens in a DataGrid, which is bound to a CollectionViewSource. This CVS itself has a DataContext bound to the currently selected product of a ListBox. So we are editing the details of product, those details include a data list in a DataGrid (DataGridTextColumn
in this case).
Either by using a data type that implements IDataErrorInfo or by using a ValidationRule, if the validation fails the DataGrid reacts by keeping the TextBox and showing a red box around it (when the validation is OK, the cell is tranformed back to a
Nothing prevents me from selecting another product. The DataGrid then shows the new data and everything is fine. But if I come back to the product which failed validation, I get this exception:
InvalidOperationException, 'DeferRefresh' is not allowed during an AddNew or EditItem transaction.
How can I prevent that? What is the correct way of cancelling the edit on that faulty cell when another product is selected, or when the DataContext changes?
I can detect those events, but CancelEdit() doesn't work on the DataGrid (no result).
I'm using .NET 4.
View Complete Post