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