MVVM light - comment accéder à la propriété dans d'autres modèle de vue
Je suis en utilisant mvvm light à la création d'une application Silverlight.
Est-il d'un fragment de code suivant montre comment accéder à la vue du modèle, de la propriété ou de la commande à partir d'un autre modèle d'affichage ou de contrôle de l'utilisateur du code derrière?
Je suppose que c'est simple, mais j'ai un peu raté quelque chose.
Ueli
Il dépend de la mise en œuvre de vos contrôles. Êtes-vous le partage de ce Dernier entre les points de vue qui sont en vertu d'une vue parent ou êtes-vous simplement en train d'essayer de partager la propriété/Commande entre les deux points de vue?
La vue en question peuvent être imbriquées les unes dans les différents points de vue, mais il relaie sur un viewmodel qui doit être en mesure d'accéder à une propriété indépendante viewmodel. Dans mon cas concret, c'est un CardViewModel qui doit saisir les informations sur l'utilisateur actuellement connecté (manipulés et entreposés de façon indépendante UserViewModel) pour faire un appel à un webservice.
La vue en question peuvent être imbriquées les unes dans les différents points de vue, mais il relaie sur un viewmodel qui doit être en mesure d'accéder à une propriété indépendante viewmodel. Dans mon cas concret, c'est un CardViewModel qui doit saisir les informations sur l'utilisateur actuellement connecté (manipulés et entreposés de façon indépendante UserViewModel) pour faire un appel à un webservice.
OriginalL'auteur Ueli Sonderegger | 2010-04-23
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le Messenger pour ce faire:
Envoyer à l'utilisateur dans la UserViewModel:
voudrais juste envoyer à l'utilisateur de toute personne intéressée.
Et enregistrer un destinataire dans votre CardViewModel:
ou vous pouvez également envoyer une demande à partir de votre CardViewModel pour crier à l'utilisateur:
Et réagir sur que dans le UserViewModel:
(Il vaut mieux utiliser un enum, et non une chaîne de caractères dans un véritable scénario 🙂 )
Perhabs vous pouvez même réponse directement, mais je ne peux pas le vérifier à l'instant.
Juste vérifier cela: Mvvm light Messenger
Votre accueil 🙂 und en gruess uss de chalte schwiiz zrugg 😉
OriginalL'auteur
Un autre moyen est d'utiliser la surcharge de RaisePropertyChanged qui diffuse aussi le changement. Vous voulez faire cela:
Puis dans l'abonné:
où T est le type de MyProperty.
Cheers
Laurent
OriginalL'auteur
Une autre façon de regarder le problème est d'avoir un service qui renvoie la "utilisateur actuellement connecté".
La responsabilité de la manipulation qui est connecté en est plus de la responsabilité d'un service de toute façon, et le Viewmodel rester simple.
Viewmodel doivent exister que pour la Vue. Mais, d'être de bons citoyens, ils peuvent aussi fournir de l'aide à d'autres Viewmodel comme Laurent et CodeWeasel sont à l'affiche.
OriginalL'auteur