IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

Binding et navigation


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Par défaut Binding et navigation
    Bonjour,

    Je suis entrain d'explorer le pattern MVVM pour Silverlight For Windows Phone et je cherche à transmettre l'objet sélectionné d'une listbox à la page cible.

    Ce que j'ai vu souvent faire, c'est d'envoyer l'id en querystring, ce qui ne me satisfait pas trop.

    Donc j'ai mon ViewModel qui contient une liste d'objets, je stocke également l'objet sélectionné et lors de la navigation (suite au click dans la listbox), je veux transmettre l'objet.

    Comment vous prendrez-vous ?

    D'avance merci.
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Tu as 2 donc ViewModel différent c'est ça ? Si oui alors tu peux utiliser le Messenger du MVVM Light (ou un truc perso), ça permets de faire communiquer 2 ViewModel ensemble.

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Par défaut
    Je n'ai malheureusement pas utiliser MVVM Light Toolkit et je ne vois pas trop comment faire un truc perso, ça utilise le pattern mediator ?

    Merci pour ton aide
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  4. #4
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Non.

    En fait tu as 2 méthodes : Send et Register. La première prend en paramètre un string et un objet et la 2ème prend en paramètre un string et une Action<object>.

    Ta première VM s'abonne avec un Register du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Messenger.Default.Register("Navigation", (o) => this.Item = o as Item);
    Et la 2ème VM envoie donc un message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Messanger.Default.Send("Navigation", this.SelectedItem);
    Derrière ton messenger récupère les VM qui se sont enregistrées via Register et execute leur Action en passant en paramètre le 2 argument du Send.

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Par défaut
    Bon j'ai craqué, j'ai intégré MVVM Light à mon projet... Maintenant j'explore le modèle, si vous avez des exemples ça serai sympa, pour l'utilisation de messenger c'est effectivement pas mal.
    Pour ce qui est de lier les évènements à la VM, j'ai vu pas mal d'exemple qui passe par un trigger, y a d'autres possibilité ?

    Merci encore
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par rad_hass Voir le message
    Bon j'ai craqué, j'ai intégré MVVM Light à mon projet... Maintenant j'explore le modèle, si vous avez des exemples ça serai sympa, pour l'utilisation de messenger c'est effectivement pas mal.
    Pour ce qui est de lier les évènements à la VM, j'ai vu pas mal d'exemple qui passe par un trigger, y a d'autres possibilité ?

    Merci encore
    Il faut bien passer par un Trigger il me semble avec MVVM Light (je me souviens plus exactement j'en utilise plein de différents et c'est jamais la même chose). Tu définis ton event et la méthode à appeler.

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Par défaut
    Citation Envoyé par Skyounet Voir le message
    Non.

    En fait tu as 2 méthodes : Send et Register. La première prend en paramètre un string et un objet et la 2ème prend en paramètre un string et une Action<object>.

    Ta première VM s'abonne avec un Register du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Messenger.Default.Register("Navigation", (o) => this.Item = o as Item);
    Et la 2ème VM envoie donc un message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Messanger.Default.Send("Navigation", this.SelectedItem);
    Derrière ton messenger récupère les VM qui se sont enregistrées via Register et execute leur Action en passant en paramètre le 2 argument du Send.
    Je suis à cette étape et je ne vois pas quand est ce que j'effectue ma navigation.

    Donc j'ai ma première VM qui envoie l'élément sélectionné, la deuxième qui s'abonne, mais quand est ce que je navigue vers la vue correspondante à la seconde VM ?

    Encore merci
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  8. #8
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Je pense que tu dois pouvoir tirer quelque chose de ce tuto

    http://nico-pyright.developpez.com/a...t-silverlight/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/10/2010, 15h34
  2. Probleme binding navigator
    Par theoffss dans le forum Windows Forms
    Réponses: 5
    Dernier message: 08/07/2008, 15h35
  3. Binding Navigator avancé
    Par infotunis dans le forum C#
    Réponses: 10
    Dernier message: 07/07/2008, 15h17
  4. Réponses: 2
    Dernier message: 21/08/2006, 21h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo