void GongSolutions.Wpf.DragDrop.IDropTarget.Drop(GongSolutions.Wpf.DragDrop.IDropInfo dropInfo) { var target = dropInfo.TargetItem is MpdFile ? dropInfo.TargetItem as MpdFile : dropInfo.TargetItem is IEnumerable<MpdFile> ? (dropInfo.TargetItem as IEnumerable<MpdFile>).FirstOrDefault() : null; var items = dropInfo.DragInfo.SourceItems.OfType<MpdFile>().OrderBy(i => i.Pos).ToArray(); if (target != null && items.FirstOrDefault() != null && m_Mpc.Connected) { var x = target.Pos - ((dropInfo.InsertPosition & RelativeInsertPosition.AfterTargetItem) == 0 ? 1 : 0); try { foreach (var i in items) { var y = i.Pos; if (y > x) x++; m_Mpc.MoveId(i.Id, x); } } catch (Exception ex) { } } }
void GongSolutions.Wpf.DragDrop.IDragSource.StartDrag(GongSolutions.Wpf.DragDrop.IDragInfo dragInfo) { if (dragInfo.SourceItems.OfType<object>().Count() > 1) { dragInfo.Effects = DragDropEffects.Move; } }
void GongSolutions.Wpf.DragDrop.IDropTarget.DragOver(GongSolutions.Wpf.DragDrop.IDropInfo dropInfo) { dropInfo.Effects = dropInfo.TargetItem is MpdFile || dropInfo.TargetItem is IEnumerable<MpdFile> ? DragDropEffects.Move : DragDropEffects.None; dropInfo.DropTargetAdorner = GongSolutions.Wpf.DragDrop.DropTargetAdorners.Insert; }
void GongSolutions.Wpf.DragDrop.IDragSource.Dropped(GongSolutions.Wpf.DragDrop.IDropInfo dropInfo) { }