private void ExecuteDrop(EventTranscriptionParameter <DragEventArgs> parameter) { if (!parameter.EventArgs.Data.GetDataPresent(DataFormats.FileDrop)) { return; } var filePaths = (string[])parameter.EventArgs.Data.GetData(DataFormats.FileDrop, true); droppedFiles = filePaths.Select(x => WindowsFile.CreateFromPath(x)).ToArray(); IsDropMenuOpen = true; }
public override void Execute(object parameter) { var active = MainViewModel.ActiveDirectoryContainer.ActiveView; //get data from clipboard var data = Clipboard.GetDataObject(); //files var paths = (string[])data.GetData(DataFormats.FileDrop, true); if (paths == null) { MessageBox.Show("Schowek jest pusty"); return; } //get flag indicating whether it is copy or cut var stream = (MemoryStream)data.GetData("Preferred DropEffect", true); bool copyFlag = stream.ReadByte() == 5 ? true : false; //change paths into IDirectoryViewItems var items = new IDirectoryViewItem[paths.Length]; for (int i = 0; i < paths.Length; i++) { items[i] = WindowsFile.CreateFromPath(paths[i]); } MultiFileOperation operation; if (copyFlag) { operation = new CopyOperation(items, active.FullPath, new WindowsFileSystem(), active.FileSystem); } else { operation = new MoveOperation(items, active.FullPath, new WindowsFileSystem(), active.FileSystem); } OperationManager.ExecuteOperation(operation); }