Esempio n. 1
0
        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);
                }
            }
        }