Паттерн MVP@WinForms: как во View понять, были ли изменения в данных?

Дано: приложение на C# WinForms, которое пытается следовать паттерну MVP.

View представляет собой форму с гридом, в гриде есть данные. Также есть конпочки, которые с этими данными что-то делают. View не знает, что. Он просто генерит по нажатию кнопок события, которые обрабатываются презентером.


Задача: при закрытии формы необходимо понять, были ли изменения в данных, и если были, то спросить, сохранять ли их.


Варианты, которые приходят в голову (но ни один из них не нравится):

1. По нажатию кнопок сделать вывод, что данные поменялись.

2. Спрашивать о сохранении из презентера.

3. Генерировать событие типа «а не было ли изменений?», но разумных идей по поводу аргументов и названия этого события в голову не приходит.


Посоветуйте, пожалуйста, как разрулить ситуацию.
  • Вопрос задан
  • 5057 просмотров
Пригласить эксперта
Ответы на вопрос 1
kefirr
@kefirr
Отображение диалога — ответственность View. Были ли изменения в данных — знает Presenter.
То есть в событии закрытия формы View должна вызвать некий метод Presenter, чтобы узнать, были ли изменения, затем показать диалог, если они были.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы