private void DataGrid_PreviewKeyDown(object sender, KeyEventArgs e) { var dg = sender as DataGrid; if (dg != null) { DataGridRow dgr = (DataGridRow)(dg.ItemContainerGenerator.ContainerFromIndex(dg.SelectedIndex)); if (e.Key == Key.Delete && !dgr.IsEditing) { // User is attempting to delete the row var result = ModernDialog.ShowMessage("About to delete the current row.\n\nProceed?", "Delete", MessageBoxButton.YesNo); if (result == MessageBoxResult.No) { e.Handled = true; } else { var tax = (ShowableTax)dgr.Item; var data = TaxesFunctions.RemoveTax(tax.id); RefreshData(); if (data != "") { ModernDialog.ShowMessage(data, "Problem with writing to database", MessageBoxButton.OK); } } } } }