public void Update( )
        {
            int i = 0;

            IEnumerable <ItemEditor> allSelectedEditors = selectedEditors( ).ToList(  );

            foreach (ItemEditor eachSelectedEditor in allSelectedEditors)
            {
                _newPosition = _canvas.PositionsBeforeUserInteraction[i] + MouseStatus.WorldPosition - _canvas.GrabPoint;

                if (Constants.Instance.SnapToGrid || KeyboardStatus.IsKeyDown(Keys.G))
                {
                    _newPosition = _canvas.SnapToGrid(_newPosition);
                }

                //_editor.SnapPoint.Visible = false ;

                eachSelectedEditor.SetPosition(_newPosition);

                i++;
            }

            IoC.Model.NotifyChanged(allSelectedEditors);

            if (MouseStatus.IsNewLeftMouseButtonReleased( ) || KeyboardStatus.IsNewKeyRelease(Keys.D1))
            {
                foreach (ItemEditor eachSelectedEditor in allSelectedEditors)
                {
                    eachSelectedEditor.OnMouseButtonUp(MouseStatus.WorldPosition);
                }

                bool isMoving = _canvas.CurrentUserAction == UserActionInEditor.MovingItems;
                _canvas.SetModeToIdle( );

                var samePoint = MouseStatus.WorldPosition == _canvas.GrabPoint;

                var memento = ObjectFactory.GetInstance <IMemento>();

                if (samePoint && isMoving)
                {
                    memento.AbortCommand( );
                }
                else
                {
                    memento.EndCommand( );
                }
            }
        }