2009-01-14 11 views
0

J'ai une application qui se compose des trois modules suivants:La communication entre les modules

  • Recherche (pour rechercher des objets)
  • Liste (pour afficher les résultats de recherche)
  • Peintre (pour me permettre pour éditer des objets) - ce module n'est pas toujours chargé

(Chaque objet est une figure que je peux éditer chez le peintre).

Lorsque j'ouvre un objet dans le peintre, il est ajouté aux objets qui sont déjà dans le peintre et je peux le déplacer et le modifier. J'utilise un objet similaire à l'EventAggregator pour communiquer entre les modules. Par exemple, pour afficher les résultats de la recherche, je publie un événement "ShowList" attrapé par le module Liste (je ne suis pas sûr que ce soit la meilleure façon de le faire, si quelqu'un a une meilleure idée, veuillez commenter ...).

L'une des caractéristiques du module de recherche nécessite pour obtenir l'objet sélectionné dans le peintre (si le peintre est disponible), et je ne suis pas sûr de ce que serait la meilleure façon de le faire ...

Je pensais que ces solutions:

  1. Chaque fois que l'objet sélectionné dans le peintre change, il publiera un événement « PainterSelectedObjectChanged » qui sera pris par le module de recherche et stocké pour une utilisation ultérieure.

  2. Lorsque l'objet sélectionné est requis par le module de recherche, il publie un événement "RequestingPainterSelectedObject" qui sera détecté par le module peintre. Le module peintre définira alors la propriété "SelectedObject" dans l'objet EventArgs, et quand la publication sera terminée et que nous serons de retour dans le module de recherche, nous aurons l'objet sélectionné par le peintre dans l'objet EventArgs.

Qu'en pensez-vous? Quel est le bon moyen de le faire?

Répondre

0

Je dirais, l'option A. Cela ressemble à scénario habituel, peut-être que je ne l'ai pas entièrement compris dans son ensemble. :)

0

Je dirais, l'option B. Cela ressemble à un scénario assez habituel, peut-être que je ne l'ai pas entièrement compris dans son ensemble. :)

Questions connexes