// TODO: Проверить удалиться ли элемент из DataGridView, если удалить его из связаного источника без вызова метода Update на DataGridView private void removeMedicamentButton_Click(object sender, EventArgs e) { Medicament selectedMedicament = medicamentsTable.SelectedRows[0].DataBoundItem as Medicament; int currentRowIndex = medicamentsTable.SelectedRows[0].Index; if (NotificationHelper.ShowQuestion(string.Format("Ви впевнені, що хочете видалити всі данні про медикамент '{0}'", selectedMedicament)) == System.Windows.Forms.DialogResult.Yes) { medicamentsList.Remove(selectedMedicament); new Task( () => { using (MedicamentRemainsContext mc = new MedicamentRemainsContext()) { mc.Medicaments.Attach(selectedMedicament); mc.Medicaments.Remove(selectedMedicament); mc.SaveChanges(); } } ).Start(); RecalculateRowsNumbers(currentRowIndex); } }
private void removeMeterLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { if (NotificationHelper.ShowQuestion("Ви впевнені що хочете видалити вказаний елемент?") != System.Windows.Forms.DialogResult.Yes) { return; } int rowIndex = dataTable.SelectedCells[0].RowIndex; int itemId = Convert.ToInt32(dataTable.Rows[rowIndex].Cells[0].Value); object selectedItem = dataTable.Rows[rowIndex].DataBoundItem; lock (lockObject) { if (itemId > 0) { SetDataToDb(new DbRecordChangesTask { DbRecord = selectedItem, ChangesType = DbRecordChangesType.Remove }); } } dataTable.Rows.RemoveAt(rowIndex); RecalculateRowsNumbers(rowIndex); }