public override IScriptCommand Execute(ParameterDic pm)
        {
            DragAdorner       dragAdorner      = pm.GetValue <DragAdorner>(AdornerKey);
            DragDropEffectsEx supportedEffects = pm.GetValue <DragDropEffectsEx>(SupportedEffectsKey, DragDropEffectsEx.All);
            DragDropEffectsEx defaultEffect    = pm.GetValue <DragDropEffectsEx>(DefaultEffectKey, DragDropEffectsEx.Copy);

            RoutedEventHandler ContextMenu_Closed = null;

            ContextMenu_Closed = (o, e) =>
            {
                dragAdorner.ContextMenu.RemoveHandler(ContextMenu.ClosedEvent, ContextMenu_Closed);
                pm.SetValue(ResultEffectKey, dragAdorner.DragDropEffect);
                ScriptRunner.RunScriptAsync(pm, OnCloseCommand);
            };


            dragAdorner.SetSupportedDragDropEffects(supportedEffects, defaultEffect);
            dragAdorner.ContextMenu.AddHandler(ContextMenu.ClosedEvent, ContextMenu_Closed);
            dragAdorner.ContextMenu.IsOpen = true;

            return(NextCommand);
        }