2010-11-15 3 views
0

J'utilise votre classe messenger pour communiquer entre les vues/contrôles et viewmodels. Actuellement, j'ai le même usercontrol plusieurs fois sur la même vue. Le problème est que quand un viewmodel envoie un message à usercontrol alors tous les usercontrols (de ce même type) à mon avis sont mis à jour. Comment cela peut-il être évité?Problèmes de messagerie MVVM light toolkit

Pour info, j'ai joué avec la fonctionnalité de jeton que vous fournissez, mais je ne pouvais pas le faire fonctionner dans mon cas particulier.

Répondre

0

Avez-vous essayé de modifier votre commande usercontrol de sorte que lors de la construction, vous pouvez spécifier si oui ou non il devrait s'inscrire pour ce message particulier? Je ferais cela comme point de départ. Autre chose à surveiller en utilisant Messenger.Default - ce n'est pas threadsafe, donc si vous finissez par l'utiliser dans beaucoup d'endroits autres que usercontrols (comme dans les threads de travail pour notifier le thread principal des événements qui se produisent) , alors vous feriez mieux d'envelopper dans une autre classe qui effectue le verrouillage requis.

0

Vous pouvez définir la cible du message si votre message hérite de la classe , ou d'un Guid en tant que jeton Messenger.

Questions connexes