private void dgKlanten_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e) { var grid = (DataGrid)sender; if (Key.Delete == e.Key) { if (!(MessageBox.Show(Translations.RemoveCustomer, Translations.Confirm, MessageBoxButton.YesNo) == MessageBoxResult.Yes)) { // Cancel Delete. e.Handled = true; return; } // We moeten een while gebruiken en telkens testen want met foreach treden problemen op omdat de verzameling intussen telkens wijzigt! while (grid.SelectedItems.Count > 0) { var row = grid.SelectedItems[0]; Klant klant = row as Klant; if (klant.GetBestellingen().Count == 0) { _klanten.Remove(row as Klant); } else { MessageBox.Show(Translations.RemoveOrdersFromCustomer + klant.Naam, Translations.RemoveCustomerError, MessageBoxButton.OK, MessageBoxImage.Warning); break; } } } }
private void DeleteButton_Click(object sender, RoutedEventArgs e) { // We moeten een while gebruiken en telkens testen want met foreach treden problemen op omdat de verzameling intussen telkens wijzigt! while (dgKlanten.SelectedItems.Count > 0) { var row = dgKlanten.SelectedItems[0]; Klant klant = row as Klant; if (klant.GetBestellingen().Count == 0) { _klanten.Remove(row as Klant); } else { MessageBox.Show(Translations.RemoveOrdersFromCustomer + klant.Naam, Translations.RemoveCustomerError, MessageBoxButton.OK, MessageBoxImage.Warning); break; } } }