Создание и показ формы происходит полностью аналогичным образом как и при добавлении, но здесь нам требуется передать на форму данные для редактирования. Для получения текущего объекта Row в таблице Group, т.е. того Row, который выбран в gvGroups, можно воспользоваться следующей конструкцией:
DataRowView rv = (DataRowView)groupBindingSource.Current;
groupBindingSource.Current возвоащает текущий Row, но т.к. возвращается тип object, то нам необходиом его привести к нужному виду, в данном случае это всегда будет
DataRowView.
Далее передаем данные для редатирования на форму при помощи следующей строки: form.SetGroupName((string)rv.Row["Name"]);
Когда же редактирование завершено и пользователь закрыл форму по кнопке ОК, то заносим изменения с формы обратно в объект Row, это происходит при выполнении следующей строки:rv.Row["Name"] = form.GetGroupName();
Обработчик нажатия кнопки “Add Student”:
Добавление нового студента происходит почти также как и группы:
private void btnAddStudent_Click(object sender, EventArgs e)
{
int GroupID = ((dsSample.GroupRow)((DataRowView)groupBindingSource.Current).Row).GroupID;
StudentForm form = new StudentForm(dsSample1, GroupID);
if (form.ShowDialog() == DialogResult.OK)
{
dsSample.StudentRow row = dsSample1.Student.NewStudentRow();
row.Name = form.StudentName;
row.Surname = form.StudentSurname;
row.GroupID = form.StudentGroupID;
dsSample1.Student.AddStudentRow(row);
}
}
Первой строкой мы получаем ID выбранной группы в DataGridView. Далее создаем объект StudentForm и передаем туда необходимые параметры – это DataSet, для загрузки списка групп, и ID выбранной группы. Далее показываем форму и, если пользователь закрыл ее по кнопке ОК, добавляем нового студента в dsSample1. Для этого создаем объект row и задаем все необходимые свойства Name, Surname, GroupID, после чего добавляем настроенный объект row
в таблицу Student.
Обработчик нажатия кнопки “Edit Group”:
private void btnEditStudent_Click(object sender, EventArgs e)
{
dsSample.StudentRow row = (dsSample.StudentRow)((DataRowView)studentBindingSource.Current).Row;
StudentForm form = new StudentForm(dsSample1, row.GroupID);
form.StudentName = row.Name;
form.StudentSurname = row.Surname;
if (form.ShowDialog() == DialogResult.OK)
{
row.Name = form.StudentName;
row.Surname = form.StudentSurname;
row.GroupID = form.StudentGroupID;
}
}







