private void OnAdd(object sender, EventArgs e) { var refItemForm = new RefItemForm { Text = "Новый автор", GroupBoxText = "Информация о новом авторе", LabelText = "Автор:" }; if (refItemForm.ShowDialog() == DialogResult.OK) { try { var newAuthor = new Author { Id = 0, Name = refItemForm.ItemText }; Model.AuthorRepository.Add(newAuthor); } catch (Exception ex) { MessageBox.Show("Произошла ошибка при добавлении нового автора.", "Что-то пошло не так", MessageBoxButtons.OK, MessageBoxIcon.Error); Utils.Log.Trace(ex); } // Пересчитываем список авторов UpdateView(); // Выделяем добавленного (последнего в списке) автора View.ListView.Select(); View.ListView.Items[View.ListView.Items.Count - 1].Selected = true; View.ListView.EnsureVisible(View.ListView.Items.Count - 1); } else { // Восстанавливаем фокус и выделение авторов View.ListView.Select(); } }
private void OnEdit(object sender, EventArgs e) { // Проверяем, есть ли хотя бы один выделенный элемент в списке книг if (View.ListView.SelectedItems.Count == 0) { return; } // Если выделенных элементов несколько, то берем первый из них int selectedIndex = View.ListView.SelectedIndices[0]; Author author = (Author)View.ListView.Items[selectedIndex].Tag; var refItemForm = new RefItemForm { Text = "Изменение существующего автора", GroupBoxText = "Информация об авторе", LabelText = "Автор:", ItemText = author.Name }; if (refItemForm.ShowDialog() == DialogResult.OK) { try { author.Name = refItemForm.ItemText; Model.AuthorRepository.Update(author); View.ListView.Items[selectedIndex].Text = author.Name; // Оповещаем подписчиков о том, что произошли изменения ModifiedHandler(); } catch (Exception ex) { MessageBox.Show("Произошла ошибка при изменении информации об авторе.", "Что-то пошло не так", MessageBoxButtons.OK, MessageBoxIcon.Error); Utils.Log.Trace(ex); } } }
private void OnAdd(object sender, EventArgs e) { var refItemForm = new RefItemForm(); refItemForm.Text = "Новое издательство"; refItemForm.GroupBoxText = "Информация о новом издательстве"; refItemForm.LabelText = "Издательство:"; if (refItemForm.ShowDialog() == DialogResult.OK) { try { var newPress = new Press { Id = 0, Name = refItemForm.ItemText }; Model.PressRepository.Add(newPress); } catch (Exception ex) { MessageBox.Show("Произошла ошибка при добавлении нового издательства.", "Что-то пошло не так", MessageBoxButtons.OK, MessageBoxIcon.Error); Utils.Log.Trace(ex); } // Пересчитываем список издательств UpdateView(); // Выделяем добавленное (последнее в списке) издательство View.ListView.Select(); View.ListView.Items[View.ListView.Items.Count - 1].Selected = true; View.ListView.EnsureVisible(View.ListView.Items.Count - 1); } else { // Восстанавливаем фокус и выделение издательств View.ListView.Select(); } }