/// <summary> /// Добавить кнопку удаления в сплывающее меню /// </summary> private void DeleteButtonInPopupMenu() { if (!OptionsCustomization.AllowDelete) { // var item = CustomPopupMenu.ItemLinks // .OfType<BarButtonItemLink>() // .FirstOrDefault(l => l.Item == ButtonRemove); // if (item != null) // CustomPopupMenu.ItemLinks.Remove(item); ButtonRemove.Enabled = false; return; } var erg = new EventRowHandlerArgs(InvalidRowHandle); DoCheckDeleteRow.Raise(this, erg); if (erg.Cancel) { return; } if (ButtonRemove.Links.Count == 0) { CustomPopupMenu.ItemLinks.Add(ButtonRemove); } ButtonRemove.Enabled = SelectedRowsCount != 0; }
/// <summary> /// Проверка таблицы на возможность удаления данных и удаление выделенных строк /// </summary> public void RemoveRowsButtonClick() { if (!OptionsCustomization.AllowDelete || State != GridState.Normal) { return; } var erg = new EventRowHandlerArgs(InvalidRowHandle); DoCheckDeleteRow.Raise(this, erg); if (erg.Cancel) { return; } if (OptionsCustomization.AllowSelectionColumn && SelectedRowsCount == 0) { MessageWindow.GetInstance("Выберите записи, которые хотите удалить", MessageType.Info); return; } if (XtraMessageBox.Show(MsgDelete, "Удаление данных", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } var data = GetSelectedObjectRows(); if (DoBeforeDeleteRow != null && !DoBeforeDeleteRow(data)) { return; } if (OptionsCustomization.AllowSelectionColumn) { DeleteSelectedRows(); } else { DeleteRow(FocusedRowHandle); } if (DoAfterDeleteRow != null) { DoAfterDeleteRow(data); } else { var form = GridControl.FindForm() as CommonChildForm; if (form != null && form.CheckDBContext(data)) { form.DeleteFromDBContext(data); } } }