Remontée des événements .
J'ai plusieurs couches dans une application et que je me trouve avoir à faire des bulles sur les évènements de l'interface graphique de la couche pour faire la barre de statut, etc . . Je me retrouve à devoir écrire répété codé où chaque calque, il suffit de s'abonne aux événements de la couche inférieure, puis dans le retour d'appel simplement déclencher un événement de la chaîne. Est-il un moyen plus efficace de faire cela?
Vous devez vous connecter pour publier un commentaire.
Si tout ce que vous faites est de tir d'un gestionnaire d'événements à partir d'un autre gestionnaire d'événement, vous pouvez couper l'homme du milieu et crochet les gestionnaires d'événements directement dans la fenêtre ajouter/supprimer des blocs pour l'événement.
Par exemple, si vous avez un UserControl avec un "SaveButtonClick" de l'événement, et tout ce que vous voulez faire lors de l'appel au gestionnaire d'événement lors de la "SaveButton" sur votre UserControl est cliqué, vous pouvez le faire:
Maintenant, vous n'avez pas besoin d'un code pour le feu de la SaveButtonClick événement, il sera automatiquement déclenché lorsque la SaveButton.Cliquez sur événement est déclenché (c'est à dire quand quelqu'un clique sur ce bouton).
Peter Rilling a posté une façon de simuler de remontée d'Événements/de la Radiodiffusion dans les winforms.
C'est simple et efficace.
http://www.codeproject.com/KB/cs/event_broadcast.aspx
Avoir une lecture de Jeremy Miller blog "L'Ombre de l'Arbre Développeur", en particulier son Écrire Votre Propre CABINE de la série - le modèle de commande trucs qu'il parle, il est probablement ce que vous avez besoin.
À moins que je vois un peu plus de la conception.. ça va être dur de donner une bonne réponse.
WPF n'bulle événements (automatiquement) le Composant de l'INTERFACE utilisateur/de Contrôle de l'arbre... cela a maintenant été intégré dans le cadre. Donc je suppose que c'est le moyen recommandé 🙂
Le problème avec le contournement de l'homme du milieu Layer2, c'est que des couches 1 et Layer3 maintenant connaître les uns les autres... sont couplés. Si ses un compromis.. si vous êtes d'accord avec l'attelage.. éliminer l'homme du milieu /inventer une spécialité de cette responsabilité. Toutefois, si vous prévoyez de Couche 3 pour être remplaçables à chaud (couplage faible), je dirais de continuer de bulles.
Vous pouvez avoir un canal central qui prennent en charge uniquement les événements. Ce canal doit être indépendant de sorte que la couche de publier ou abonnez-vous à elle.
Prendre un coup d'oeil à Mettre À Jour Les Contrôles .NET. Ces contrôles de découvrir les pièces de votre modèle de données qu'elles dépendent de même à travers les couches de la logique métier. Vous n'avez pas à écrire tout code pour les informer.