void FlushEdits() { UIElement oldFocus = null; //check if property grid has keyboard focus within, if yes - get focused control if (null != this.propertyInspector && this.propertyInspector.IsKeyboardFocusWithin) { oldFocus = FocusManager.GetFocusedElement(this.propertyInspector) as UIElement; } //check if view has keyboard focus within, if yes - get focused control if (null != this.view && this.view.IsKeyboardFocusWithin) { oldFocus = FocusManager.GetFocusedElement(this.view) as UIElement; } if (null != oldFocus) { RoutedCommand cmd = DesignerView.CommitCommand as RoutedCommand; if (cmd != null) { cmd.Execute(null, oldFocus); } } //commit changes within arguments and variables editor var designerView = this.Context.Services.GetService <DesignerView>(); if (null != designerView) { if (null != designerView.arguments1) { DataGridHelper.CommitPendingEdits(designerView.arguments1.argumentsDataGrid); } if (null != designerView.variables1) { DataGridHelper.CommitPendingEdits(designerView.variables1.variableDataGrid); } } }