Это скорее концептуальный вопрос.Если это поможет, скажем, это попадает в шаблон MVVM.Я никогда не сталкивался с этим в своих исследованиях по связыванию WPF.
Если у вас есть окно, в котором есть элементы, связанные с моделью представления посредством привязки, и пользователь обновляет запись, но перед сохранением решает:отменить обновление, что бы вы назвали лучшим способом отмены изменений?
Я могу подумать о нескольких возможностях:
- Вместо того, чтобы позволять пользователю обновлятьНа главном экране появится всплывающее окно для редактирования второго окна, которое привязано к копии виртуальной машины и после «Сохранить» записывает эти данные в исходную виртуальную машину, а затем обновляет ее до модели. Увеличивает использование памяти и усложняет функцию Сохранить.
- Создайте «нетронутую» копию исходного объекта ВМ и после «Отмена» запишите эту ВМ поверх оригинала (при этомвремя копия может быть удалена). Увеличивает использование памяти и усложняет функцию Отмена.
- Создайте копию каждого из элементов в ВМ, которая может измениться при создании и после «Отмена», запишите эти значения поверхизменились. Увеличивает размер и сложность ВМ.
- После выполнения «Отмена» ВМ обращается к источнику данных и перезагружает запись. Вызывает сетевой трафик и трафик доступа к БД и, возможно, задержку времени для обновления дисплея до исходного состояния.Также может вызвать проблемы, если виртуальная машина была обновлена из другого процесса, и эти «внешние» обновления не должны быть удалены.
Может кто-нибудь придумать лучшее решение этой проблемы или узнать о некоторыхнеясная функциональность в WPF, которая обрабатывает это «автоматически»?