Первое, что необходимо сделать в обработчике, это создать новую форму и показать ее как диалог, т.е. таким образом, чтобы главная форма была недоступна пользователю пока он не закончит добавление новой группы. При этом нам нужно еще проверить как пользователь закрыл форму: по кнопке ОК, по кнопке Cancel или просто закрыл, нажав крестик; для этого проверим значение, которое возвращает метод ShowDialog (о том как это установить значение для кнопок ОК и Cancel см. описание форм ниже). За все это отвечают первые две строки:
GroupForm form = new GroupForm();
if (form.ShowDialog() == DialogResult.OK)
Далее внутри условного оператора мы оказываемся уже после закрытия формы и только в случае, когда пользователь нажал ОК. Теперь нам необходимо добавить данные введенные на форме добавить в наш DataSet с названием dsSample1 в таблицу Group. За это отвечают следующие три строки:
dsSample.GroupRow row = dsSample1.Group.NewGroupRow();
row.Name = form.GetGroupName();
dsSample1.Group.AddGroupRow(row);
Первая строка создает новый объект row, представляющий собой строку таблицы Group. Так как группа характеризуется только одним свойством Name, то мы должны задать только его, для этого вызываем метод GetGroupName() формы GroupForm, который вернет название формы, введенное пользователем. Третья строка просто добавляет объект row в на таблицу Group. После этого новая группа считается добавленной в DataSet, но в XML-файл эти изменения еще не попали, это произойдет только при закрытии приложения в событии Form1_FormClosing.
Обработчик нажатия кнопки “Edit Group”:
private void btnEditGroup_Click(object sender, EventArgs e)
{
GroupForm form = new GroupForm();
DataRowView rv = (DataRowView)groupBindingSource.Current;
form.SetGroupName((string)rv.Row["Name"]);
if (form.ShowDialog() == DialogResult.OK)
{
rv.Row["Name"] = form.GetGroupName();
}
}







