У меня есть окно, которое показывает список сущностей, и я хочу отредактировать выбор вида сетки в новом окне (не в сетке). Когда я отправляю свою форму, ошибки не возникает, но объект не имеет изменений в базе данных! пожалуйста, помогите мне.
в верхней части моего списка окна код позади:
private ObservableCollection<Employee> AllEmployeesData { get; set; }
private ListCollectionView View;
и в window_loaded я использую этот метод для получения данных:
public void LoadAllEmployees()
{
IEnumerable<Employee> data = null;
using (ArchiveEntities db = new ArchiveEntities())
{
data = db.Employees.Include("Department");
this.AllEmployeesData = new ObservableCollection<Employee>(data);
}
CollectionViewSource employeeSource = (CollectionViewSource)this.FindResource("AllEmployeesDataSource");
employeeSource.Source = this.AllEmployeesData;
this.View = (ListCollectionView)employeeSource.View;
}
Событие нажатия кнопки Edit:
EditEmployeeView win = new EditEmployeeView();
View.EditItem(SelectedEmployee);
win.DataContext = SelectedEmployee;
if ((bool)win.ShowDialog())
{
using (ArchiveEntities db = new ArchiveEntities())
{
Employee employee = db.Employees.Single(x => x.Id == SelectedEmployee.Id);
db.Employees.ApplyCurrentValues(employee);
db.SaveChanges();
View.CommitEdit();
}
}
else
{
View.CancelEdit();
}
весь приведенный выше код находится в моем первом окне (окно, которое показывает список объектов).
и в моем втором окне (окно для редактирования выбранного элемента первого окна):
событие нажатия кнопки submit:
DialogResult = true;
Close();
Моя проблема: при отправке формы редактирования ошибка не возникает, но данные не сохраняются в базе данных, и когда я отменяю форму редактирования, я получаю эту ошибку:
Исключительная ситуация InvalidOperationException: CancelEdit не поддерживается
для текущего элемента редактирования.