public EditWindowEmployee(RowViewTemplate dataRowEmployee, ObservableCollection <Department> _colD) { InitializeComponent(); result = dataRowEmployee; colD = _colD; selectorCB.ItemsSource = colD; }
/// <summary> /// Метод добавления / редактирования сотрудника /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button_editEmployee(object sender, RoutedEventArgs e) { RowViewTemplate newRow = (RowViewTemplate)dataGrid.SelectedItem; if (newRow != null) // если было выбрано какое-то значение - редактировать его { EditWindowEmployee ee = new EditWindowEmployee(newRow, colD); ee.ShowDialog(); if (ee.DialogResult.HasValue && ee.DialogResult.Value) { // обновим данные строки и выполним обновление DataRow dr = employeeTable.Rows[ee.result.Employee_ID - 1]; dr.BeginEdit(); dr["ID"] = ee.result.Employee_ID; dr["Name"] = ee.result.Employee_Name; dr["Departament_ID"] = colD.Where(d => d.FullName == ee.result.Departament_Name).First().ID; dr.EndEdit(); //employeeTable.AcceptChanges(); employeeAdapter.Update(employeeTable); } } else // если ничего не было выбрано, то добавить новое { EditWindowEmployee ee = new EditWindowEmployee(new RowViewTemplate(), colD); ee.ShowDialog(); if (ee.DialogResult.HasValue && ee.DialogResult.Value) { // создадим новую строку и добавим в таблицу DataRow dr = employeeTable.NewRow(); dr["Name"] = ee.result.Employee_Name; dr["Departament_ID"] = colD.Where(d => d.FullName == ee.result.Departament_Name).First().ID; employeeTable.Rows.Add(dr); employeeAdapter.Update(employeeTable); } } // обновить данные dataGrid.ItemsSource = UpdateResult(); }