Les responsabilités exactes dans les nombreux modèles qui sont appelés Model-View-Presenter varier. Principalement, ils varient sur la façon dont le contrôle est exercé sur la vue par le présentateur. Martin Fowler a une discussion approfondie d'un certain nombre de variantes différentes dans son chapitre sur GUI Architectures, ça vaut bien une lecture.
Jetez un oeil à Presenter First car il traite des adaptateurs et des responsabilités en profondeur.
Les deux Passive View et Supervising Controller valent la peine d'être regardés.
modèle
(ou modèle de domaine) == représentation logique des entités impliquées dans le système, y compris leur état et le comportement
présentateur == écouter les événements de la vue (et peut-être le modèle) et le service de ces demandes, le modèle convertir types dans les types de vue (vue passive), c'est vraiment plomberie pour cacher la vue et le modèle les uns des autres. Réagit au stimulus de l'utilisateur.
vue présentation ==: la représentation visuelle du modèle que l'utilisateur peut interagir avec, collecter les entrées utilisateur
Vos questions spécifiques autour des callbacks et obtenir le style de cellule de la grille sont tous les deux va impliquer les événements de manipulation de vue à partir de la grille et en ramenant les événements au présentateur pour demander des actions ou extraire des données du modèle. Ceci est parfait pour le rappel lorsque le contenu de la cellule est mis à jour (ceci doit être publié sur le présentateur afin que le présentateur puisse valider le changement dans le modèle et effectuer le changement dans le modèle).
Pour le style de cellule, je pense qu'une sorte d'adaptateur dans la vue peut avoir besoin de traduire l'état du modèle (récupéré via un événement de la vue vers le présentateur) en informations de style de cellule de grille. Cela pourrait arriver dans le présentateur mais je préférerais personnellement que le présentateur ne connaisse pas le widget dans la vue.