private async Task HandleCustomerDeleted(CustomerItemRow arg)
 {
     if (ContentDialogResult.Primary == await this.messageDialog.ShowAsync())
     {
         arg.ItemDeleteClicked -= HandleCustomerDeleted;
         this.customers.Remove(arg);
         await this.customerRepository.Delete(arg.Customer);
     }
 }
 private void populateVendors()
 {
     this.clearVendors();
     foreach (var customer in this.customerRepository.GetAllCustomers())
     {
         CustomerItemRow vendorItemRow = new CustomerItemRow
         {
             Customer = customer
         };
         vendorItemRow.ItemDeleteClicked += HandleCustomerDeleted;
         this.customers.Add(vendorItemRow);
     }
 }
 private void HandleCellEditEnded(DataGridCellEditEndingEventArgs obj)
 {
     if (obj.EditingElement is TextBox textBox && obj.EditAction == DataGridEditAction.Commit)
     {
         string          column           = obj.Column.Tag.ToString();
         int             rowIndex         = obj.Row.GetIndex();
         CustomerItemRow existingCustomer = Customers[rowIndex];
         existingCustomer.Customer.GetType().GetProperty(column).SetValue(existingCustomer.Customer, textBox.Text);
         existingCustomer.ItemDeleteClicked -= this.HandleCustomerDeleted;
         CustomerItemRow vendorItem = new CustomerItemRow
         {
             Customer = existingCustomer.Customer
         };
         vendorItem.ItemDeleteClicked += this.HandleCustomerDeleted;
         this.Customers.RemoveAt(rowIndex);
         this.Customers.Add(vendorItem);
         this.customerRepository.Create(existingCustomer.Customer);
     }
 }