private void FilesList_DragLeave(object sender, DragEventArgs e)
 {
     if (insertAdorner != null)
     {
         AdornerLayer.GetAdornerLayer(filesList).Remove(insertAdorner);
         insertAdorner = null;
     }
 }
        private async void FilesList_Drop(object sender, DragEventArgs e)
        {
            if (insertAdorner != null)
            {
                VideoFile before;
                int groupIndex;
                GetBeforeAndGroup(e.GetPosition(filesList), out before, out groupIndex);

                if (e.Data.GetDataPresent(DataFormats.FileDrop))
                {
                    var files = (string[])e.Data.GetData(DataFormats.FileDrop);
                    await AddFiles(files, before, groupIndex);
                }
                else if (e.Data.GetDataPresent(typeof(VideoFile[])))
                {
                    var files = (VideoFile[])e.Data.GetData(typeof(VideoFile[]));
                    MoveFiles(files, before, groupIndex);
                }

                AdornerLayer.GetAdornerLayer(filesList).Remove(insertAdorner);
                insertAdorner = null;
            }
        }
 private void FilesList_DragEnter(object sender, DragEventArgs e)
 {
     if (e.Data.GetDataPresent(DataFormats.FileDrop) || e.Data.GetDataPresent(typeof(VideoFile[])))
     {
         insertAdorner = new ListViewInsertMarkAdorner(filesList);
         AdornerLayer.GetAdornerLayer(filesList).Add(insertAdorner);
     }
 }