private void OnRemoveFileCmdExecute() { SelectedFile.Close(); int index = PdfFiles.IndexOf(SelectedFile); App.Current.Dispatcher.Invoke(delegate { PdfFiles.RemoveAt(index); }); if (PdfFiles.Count > index) { SelectedFile = PdfFiles[index]; } else if (PdfFiles.Any()) { SelectedFile = PdfFiles[index - 1]; } else { SelectedFile = null; } }
private void FileWorkerRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { string result = string.Empty; SelectedFile = null; if (e.Error != null) { result = "An error was thrown while loading PDF file(s): " + e.Error.ToString(); if (PdfFiles.Any()) { SelectedFile = PdfFiles.Last(); } } else { object[] args = (object[])e.Result; int skippedFiles = int.Parse(args[0].ToString()); int insertIndex = int.Parse(args[1].ToString()); if (PdfFiles.Any()) { if (insertIndex == -1) { SelectedFile = PdfFiles.Last(); } else if (insertIndex > 0 && insertIndex < PdfFiles.Count) { SelectedFile = PdfFiles[insertIndex - 1]; } } if (skippedFiles > 0) { result = string.Format("Due to PDF file errors, {0} PDF files could not be loaded.", skippedFiles); } } ProgressStatus = result; ProgressBarIsIndeterminate = false; IsBusy = false; }