//Вызов окна подтверждения удаления записи для Главной таблицы, а также удаление записи private void DeleteInMainTable() { DeleteMail = new ShowOrDeleteInMainTable(); int selectedIndex; int selectedRow = dataGrid_MainTable.SelectedIndex; if (selectedRow >= 0) { DeleteMail.SetData(mailArr[selectedRow], ShowOrDeleteInMainTable.ModeWindow.DeleteConfirm); selectedIndex = mailArr[selectedRow].mail_Id; } else { MessageBox.Show("Выделите запись которую желаете удалить", "Внимание", MessageBoxButton.OK, MessageBoxImage.Warning); return; } DeleteMail.Owner = this; bool?result = DeleteMail.ShowDialog(); if (result == true) { using (MailContext context = new MailContext()) { Mail mail = context.Mail.FirstOrDefault <Mail>(c => c.mail_Id == selectedIndex); context.Mail.Remove(mail); context.SaveChanges(); MessageBox.Show("Запись №" + selectedIndex + " в Главной таблице удалена успешно!", "Успешно", MessageBoxButton.OK, MessageBoxImage.Information); RefreshMainTable(); } } }
//Метод вызова окна просмотра записи, а также контроля за ними private void ShowInMainTable() { int rowIndex = dataGrid_MainTable.SelectedIndex; if (rowIndex >= 0) { int index = mailArrNow[rowIndex].mail_Id; if (ShowMailList.Count != 0) { //Очистка листа ShowMailList от закрытых окон ShowOrDeleteInMainTable[] tempArr = ShowMailList.ToArray(); foreach (ShowOrDeleteInMainTable SODIMT in tempArr) { if (SODIMT.IsVisible == false) { MessageBox.Show("Удаление"); ShowMailList.Remove(SODIMT); } } //Вывод окна на передний план если оно уже было открыто foreach (ShowOrDeleteInMainTable SODIMT in ShowMailList) { if (SODIMT.id == index) { SODIMT.Activate(); return; } } } ShowMail = new ShowOrDeleteInMainTable(); ShowMail.Owner = this; ShowMail.Show(); ShowMail.SetData(index, ShowOrDeleteInMainTable.ModeWindow.Show); ShowMailList.Add(ShowMail); } }