private async void HandleDropActionAsync(IDropInfo dropInfo, IList fileOrDirDropList)
        {
            if (this.FileSearchWorker.CanStartSearch())
            {
                var files = await this.FileSearchWorker.StartSearchAsync(fileOrDirDropList);

                var currentFilesCollView = this.FirstSimplePlaylistFiles as ICollectionView;

                if (currentFilesCollView == null)
                {
                    var filesColl     = new PlayListObservableCollection(files);
                    var filesCollView = CollectionViewSource.GetDefaultView(filesColl);
                    this.FirstSimplePlaylistFiles = filesCollView;
                    ((ICollectionView)this.FirstSimplePlaylistFiles).MoveCurrentTo(null);
                }
                else
                {
                    var insertIndex     = dropInfo.InsertIndex;
                    var destinationList = DefaultDropHandler.GetList(dropInfo.TargetCollection);
                    foreach (var o in files)
                    {
                        destinationList.Insert(insertIndex++, o);
                    }

                    var mediaFiles = destinationList.OfType <IMediaFile>();//.ToList();
                    this.ResetPlayListIndices(mediaFiles);
                }
            }
        }
Esempio n. 2
0
        private async Task HandleDropActionAsync(IDropInfo dropInfo, IList fileOrDirDropList)
        {
            if (!this.FileSearchWorker.IsWorking)
            {
                var files = await this.FileSearchWorker.StartSearchAsync(fileOrDirDropList);

                var currentFilesCollView = this.FirstSimplePlaylistFiles as ICollectionView;

                if (currentFilesCollView == null)
                {
                    var filesColl     = new PlayListCollection(files);
                    var filesCollView = CollectionViewSource.GetDefaultView(filesColl);
                    this.FirstSimplePlaylistFiles = filesCollView;
                    ((ICollectionView)this.FirstSimplePlaylistFiles).MoveCurrentTo(null);
                }
                else
                {
                    var insertIndex     = dropInfo.InsertIndex;
                    var destinationList = (QuickFillObservableCollection <IMediaFile>)DefaultDropHandler.GetList(dropInfo.TargetCollection);
                    destinationList.AddItems(files, insertIndex);
                }
            }
        }