Точные обязанности во многих шаблонах, которые называются Model-View-Presenter, различаются. Главным образом они варьируются в зависимости от того, насколько контроль ведущий осуществляет над представлением. Мартин Фаулер подробно обсудил ряд различных вариантов в своей главе Архитектура графического интерфейса , которую стоит прочитать.
Взгляните на Presenter First , поскольку в нем подробно рассматриваются адаптеры и обязанности.
Обе Пассивное представление и Контролирующий контроллер стоит посмотреть.
модель (или модель предметной области) == логическое представление сущностей, участвующих в системе, включая их состояние и поведение
Presenter == прослушивать события из вида (и, возможно, модель) и обслуживать эти запросы, конвертировать типы модели в типы представления (пассивное представление), это действительно важно, чтобы скрыть представление и модель друг от друга. Реагирует на раздражение от пользователя.
view == presentation: визуальное представление модели, с которой пользователь может взаимодействовать, собирая пользовательский ввод
Ваши конкретные вопросы относительно обратных вызовов и получения стиля ячейки сетки будут включать в себя представление, обрабатывающее события из сетки и вызывающее события обратно в презентатор, чтобы запросить действия или получить данные из модели. Это идеально подходит для обратного вызова при обновлении содержимого ячейки (его необходимо опубликовать для докладчика, чтобы докладчик мог подтвердить изменение в модели и внести изменения в модель).
Что касается стиля ячейки сетки, я думаю, что какой-то адаптер в представлении может нуждаться в преобразовании состояния из модели (полученной посредством события из представления в презентатор) в информацию о стиле ячейки сетки. Это может произойти в докладчике, но я бы лично предпочел, чтобы докладчик не знал виджет в представлении.