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