BusyIndicator with uncommited new row in Datagrid throws exception
-
Hi, In my View I have a datagrid and a 'Undo' button. On 'Undo' I am showing a BusyIndicator. Suppose, 1) I try to add a new row in the datagrid 2) Datagrid row goes into the error state because of some validation failure 3) While datagrid is in edit mode, without loosing focus on the datagrid, I presses a shortcut 'Ctrl+Z' to Undo changes Following exception occurs:- System.Windows.Media.Animation.AnimationException: Cannot animate the 'IsEnabled' property on a 'System.Windows.Controls.ContentControl' using a 'System.Windows.Media.Animation.ObjectAnimationUsingKeyFrames'. For details see the inner exception. ---> System.InvalidOperationException: 'NewItemPlaceholderPosition' is not allowed during a transaction begun by 'AddNew'. Actually on DataGrid LostkeyboardFocus i explicitly CommitEdit and CommitNew for the datagrid. So, if I press the 'Undo' button with mouse everything works fine. But if I presses a shortcut while datagrid is in edit mode and focus is still in the datagrid, then the BusyIndicator, while setting status to BUSY, tries to change IsEnabled of the datagrid and the exception occurs. Please help me if anyone has a solution
-
Hi, In my View I have a datagrid and a 'Undo' button. On 'Undo' I am showing a BusyIndicator. Suppose, 1) I try to add a new row in the datagrid 2) Datagrid row goes into the error state because of some validation failure 3) While datagrid is in edit mode, without loosing focus on the datagrid, I presses a shortcut 'Ctrl+Z' to Undo changes Following exception occurs:- System.Windows.Media.Animation.AnimationException: Cannot animate the 'IsEnabled' property on a 'System.Windows.Controls.ContentControl' using a 'System.Windows.Media.Animation.ObjectAnimationUsingKeyFrames'. For details see the inner exception. ---> System.InvalidOperationException: 'NewItemPlaceholderPosition' is not allowed during a transaction begun by 'AddNew'. Actually on DataGrid LostkeyboardFocus i explicitly CommitEdit and CommitNew for the datagrid. So, if I press the 'Undo' button with mouse everything works fine. But if I presses a shortcut while datagrid is in edit mode and focus is still in the datagrid, then the BusyIndicator, while setting status to BUSY, tries to change IsEnabled of the datagrid and the exception occurs. Please help me if anyone has a solution
Sorry that I'm not going to be able to help, I have a basic design principle that will not allow the user to add rows to a grid, I insist that a dialog or detail panel is used for all but the most trivial editing process. It eliminates all sorts of issues I see posted here!
Never underestimate the power of human stupidity RAH