private void btnDelete_Click(object sender, EventArgs e) { try { if (dgvUnitProducts.SelectedRows.Count == 0) { MessageBox.Show("Please select row"); return; } foreach (DataGridViewRow row in dgvUnitProducts.SelectedRows) { var Product = (Product)row.DataBoundItem; unitProducts.RemoveAt(row.Index); ProductClient.DeleteProductUnitConnection(Product.id, btnId); UnitProductConnectionHolder.Connections.Remove(UnitProductConnectionHolder.Connections.Find( conn => conn.ProductId == Product.id && conn.ButtonId == btnId)); } dgvUnitProducts.DataSource = null; dgvUnitProducts.DataSource = unitProducts; } catch (Exception) { MessageBox.Show("Failed to delete button"); } }