У меня есть combobox в моем приложении WPF, которое привязано к моему списку объектов в моей модели просмотра. Когда пользователь вносит изменения в выбранный объект и затем выбирает другой элемент перед сохранением, мне нужно очистить сделанные изменения.
Я думал, что могу использовать dataContext.GetChangeSet(). Updates.Clear(), но по какой-то причине коллекция доступна только для чтения.
Я также пытался использовать dataContext.Refresh, но это не работает, поскольку объект не существует в базе данных, я создал его вручную из SP.
Пожалуйста, помогите. спасибо.
Лучше всего, вероятно, повторить запрос в отдельный контекст данных. Вы можете отменить вставку (из набора изменений) с помощью DeleteOnSubmit
(и наоборот), но я не хочу, сам.
Также, используя подход Marc, используя DeleteOnSubmit (или DeleteAllOnSubmit) для удаления вставок, следующее также отменяет любые обновления:
// clears any updates.
ChangeSet changes = dataContext.GetChangeSet();
dataContext.Refresh(RefreshMode.OverwriteCurrentValues, changes.Updates);
InsertOnSubmit()
в блок if-else, который зависит от результата диалога.