예제 #1
0
        private async void BtnAdd_Click(object sender, RoutedEventArgs e)
        {
            var dialog = new CommonOpenFileDialog
            {
                IsFolderPicker = true,
                Multiselect    = true
            };

            if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
            {
                foreach (var item in dialog.FileNames)
                {
                    var duplicate = Dispatcher.Invoke(() =>
                                                      SpChapters.Children.Cast <ChapterItem>().Select(c => c.ChapterPath).Contains(item));
                    if (duplicate)
                    {
                        continue;
                    }
                    Dispatcher.Invoke(() =>
                    {
                        var chapterItem = new ChapterItem(item);
                        SpChapters.Children.Add(chapterItem);
                        chapterItem.DelClicked += (s, eventArg) =>
                        {
                            SpChapters.Children.Remove(s as UIElement);
                        };
                    });
                    await Task.Delay(10).ConfigureAwait(false);
                }
            }
        }
예제 #2
0
        private async void Grid_Drop(object sender, DragEventArgs e)
        {
            Dispatcher.Invoke(() => Grid_DragLeave(sender, e));
            var files = e.Data.GetData("FileDrop") as IEnumerable <string>;

            if (files.Any(f => File.GetAttributes(f).HasFlag(FileAttributes.Directory)))
            {
                files = files.Where(f => File.GetAttributes(f).HasFlag(FileAttributes.Directory));
                foreach (var item in files)
                {
                    var duplicate = Dispatcher.Invoke(() =>
                                                      SpChapters.Children.Cast <ChapterItem>().Select(c => c.ChapterPath).Contains(item));
                    if (duplicate)
                    {
                        continue;
                    }
                    Dispatcher.Invoke(() =>
                    {
                        var chapterItem = new ChapterItem(item);
                        SpChapters.Children.Add(chapterItem);
                        chapterItem.DelClicked += (s, eventArg) =>
                        {
                            SpChapters.Children.Remove(s as UIElement);
                        };
                    });
                    await Task.Delay(10).ConfigureAwait(false);
                }
            }
        }
예제 #3
0
 public MainWindow(string[] chapters) : this()
 {
     foreach (var item in chapters)
     {
         if (SpChapters.Children.Cast <ChapterItem>().Select(c => c.ChapterPath).Contains(item))
         {
             continue;
         }
         var chapterItem = new ChapterItem(item);
         SpChapters.Children.Add(chapterItem);
         chapterItem.DelClicked += (s, eventArg) =>
         {
             SpChapters.Children.Remove(s as UIElement);
         };
     }
 }