private async void ListView_DragItemsStarting(object sender, DragItemsStartingEventArgs e) { TabDraggingChanged?.Invoke(this, true); ItemWasDropped = false; Logger.Instance.Debug($"ListView_DragItemsStarting. e.Data.RequestedOperation: {e.Data.RequestedOperation}. Items count: {e.Items.Count}."); var item = e.Items.FirstOrDefault(); if (item is TerminalViewModel model) { await model.TrayProcessCommunicationService.PauseTerminalOutputAsync(model.Terminal.Id, true); e.Data.Properties.Add(Constants.TerminalViewModelStateId, await model.SerializeAsync()); } }
private void ListView_DragItemsCompleted(ListViewBase sender, DragItemsCompletedEventArgs args) { TabDraggingChanged?.Invoke(this, false); Logger.Instance.Debug($"ListView_DragItemsCompleted. Drop result: {args.DropResult}. Items count: {args.Items.Count}"); var item = args.Items.FirstOrDefault(); if (item is TerminalViewModel model) { if (ItemsSource.Count > 1 && !ItemWasDropped && args.DropResult == DataPackageOperation.None) { TabDraggedOutside?.Invoke(sender, args); ItemWasDropped = true; } if (ItemWasDropped) { TabDraggingCompleted?.Invoke(sender, model); } model.TrayProcessCommunicationService.PauseTerminalOutputAsync(model.Terminal.Id, false); } }