/// <summary> /// PasteCommand can execute. /// </summary> private bool PasteCommand_CanExecute() { List <ModelElement> modelElements = new List <ModelElement>(); if (this.SelectedItem is ModelTreeViewModel) { foreach (BaseModelElementViewModel vm in this.ModelTreeViewModel.SelectedItems) { if (vm.GetHostedElement() == null) { continue; } modelElements.Add(vm.GetHostedElement()); } } else if (this.SelectedItem is DiagramViewModel) { foreach (BaseModelElementViewModel vm in this.DiagramViewModel.SelectedItems) { if (vm.GetHostedElement() == null) { continue; } modelElements.Add(vm.GetHostedElement()); } } if (modelElements.Count == 0) { modelElements.Add(this.ModelContext); } if (modelElements.Count == 1) { try { System.Windows.IDataObject idataObject = System.Windows.Clipboard.GetDataObject(); if (idataObject != null) { CopyAndPasteOperations.ProcessMoveMode(idataObject); return(CopyAndPasteOperations.CanExecutePaste(modelElements[0], idataObject)); } } catch { } return(false); } return(false); }
/// <summary> /// Paste command can execute. /// </summary> public virtual bool OnPasteCommandCanExecute() { try { System.Windows.IDataObject idataObject = System.Windows.Clipboard.GetDataObject(); if (this.ViewModelStore != null) { if (this.EventManager != null) { CopyAndPasteOperations.ProcessMoveMode(this.EventManager, idataObject); } } else { } if (idataObject != null) { return(CopyAndPasteOperations.CanExecutePaste(this.Element, idataObject)); } } catch { } return(false); }