private void btnDeleteNonLibraryFile_Click(object sender, RoutedEventArgs e)
        {
            //get the file that was selected
            Button         btnDeleteNonLibraryFile = sender as Button;
            NonLibraryFile nlf = btnDeleteNonLibraryFile.DataContext as NonLibraryFile;

            //delete file
            FileInfo fi = new FileInfo(nlf.FullName.Value);

            fi.Delete();

            //clean up folder again
            RootFolder.CleanUp(fi.Directory.FullName, new List <String>(), Options.RootFolderFileExceptions.ToArray(), Options.RootFolderDirectoryExceptions.ToArray(), nlf.IsInRootFolder);

            //remove file from data grid
            ItemsSource.Remove(nlf);

            if (ItemsSource.Count == 0)
            {
                DialogResult = true;
            }
        }
        private void btnAddRootFolderFileException_Click(object sender, RoutedEventArgs e)
        {
            Button         btnAddRootFolderFileException = sender as Button;
            NonLibraryFile nlf = btnAddRootFolderFileException.DataContext as NonLibraryFile;

            Options.RootFolderFileExceptions.Add(nlf.Name.Value);
            Options.Save();

            NonLibraryFile[] matches = ItemsSource.Where(p => p.Name == nlf.Name).ToArray();

            foreach (NonLibraryFile nonLibraryFile in matches)
            {
                FileInfo fi = new FileInfo(nonLibraryFile.FullName.Value);

                RootFolder.CleanUp(fi.Directory.FullName, new List <String>(), Options.RootFolderFileExceptions.ToArray(), Options.RootFolderDirectoryExceptions.ToArray(), nonLibraryFile.IsInRootFolder);
                ItemsSource.Remove(nonLibraryFile);
            }

            if (ItemsSource.Count == 0)
            {
                DialogResult = true;
            }
        }