private void FilesListView_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (e.AddedItems.Count == 1) { // Cast the selected item to a FileStatisticsModel object FileStatisticsModel selected = (FileStatisticsModel)e.AddedItems[0]; // Get the selected item's AbsolutePath attribute string path = selected.AbsolutePath; // TODO handle preview for .iaa files // If the selected item's path leads to an image... string[] validImageExtensions = { ".BMP", ".GIF", ".JPEG", ".JPG", ".PNG" }; if (validImageExtensions.Contains(System.IO.Path.GetExtension(path).ToUpperInvariant())) { // Set preview Image's source to the selected item's AbsolutePath try { previewImage.Source = new BitmapImage(new Uri(path)); } catch { previewImage.Source = null; } } } else { previewImage.Source = null; } }
private void filesListViewCM_EditData_Click(object sender, RoutedEventArgs e) { FileStatisticsModel selectedItem = (FileStatisticsModel)filesListView.SelectedItem; if (selectedItem == null) { return; } // Show an EditFileDataDialog dialog to edit the selected item's data EditFileDataDialog dialog = new EditFileDataDialog(); dialog.FilePath = selectedItem.AbsolutePath; dialog.DatabaseChanged += EditFileDataDialog_DatabaseChanged; dialog.Owner = this; Nullable <bool> result = dialog.ShowDialog(); }
/// <summary> /// Starts a File Explorer process and navigates to filesListView's selected item's file. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void filesListViewCM_RevealInExplorer_Click(object sender, RoutedEventArgs e) { FileStatisticsModel selectedItem = (FileStatisticsModel)filesListView.SelectedItem; if (selectedItem == null) { return; } if (!File.Exists(selectedItem.AbsolutePath)) { return; } // Launch File Explorer and select the file corresponding to selectedItem ProcessStartInfo startInfo = new ProcessStartInfo { Arguments = "/select, " + selectedItem.AbsolutePath /* command-line arguments */, FileName = "explorer.exe" }; Process.Start(startInfo); }
/// <summary> /// On user's confirmation, deletes records for the selected file from the database, and refreshes /// the lists of displayed items. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void filesListViewCM_DeleteData_Click(object sender, RoutedEventArgs e) { FileStatisticsModel selectedItem = (FileStatisticsModel)filesListView.SelectedItem; if (selectedItem == null) { return; } // Prompt user to confirm deleting selected file's data DialogBox dialog = new DialogBox(); dialog.Prompt = "Delete data for " + selectedItem.Name + "?"; dialog.Owner = this; Nullable <bool> result = dialog.ShowDialog(); if (result != null && result == true) { // Delete selected file's data and refresh lists SqliteDataAccess.DeleteDataForFile(selectedItem.AbsolutePath); LoadStatistics(mTimeFrame, mSortMode); } }