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

Windows Presentation Foundation Discussion :

Binding de methodes non exposées d'un composant en MVVM


Sujet :

Windows Presentation Foundation

  1. #1
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Par défaut Binding de methodes non exposées d'un composant en MVVM
    Bonjour,

    J'ai un UserControl incorporant un WebBrowser. Si l'utilisateur veut retourner sur la page d'où il vient, il faut utiliser la méthode GoBack du composant WebBrowser. Mais je ne sait pas comment accéder à cette méthode en restant fidèle à la philosophie du MVVM.

    Pour information, le bouton que l'utilisateur clique est sur un composant qui envoie un message. Ce message à reçu par le composant contenant le WebBrowser. Enfin mon appli est basée sur le framework MVVM light.

    Pourriez-vous m'orienter dans mes recherches ?

    Merci

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    A l'aide d'un service de messagerie, il faut que ta vue contenant le webbrowser écoute un certain type de message. Au moment de la commande tu envoies ce type de message qui sera intercepté par ta vue.

  3. #3
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Par défaut
    Merci de ta réponse.

    Sa oblige à mettre du code dans la vue. Tu ne vois pas une autre solution un peu plus MVVM friendly ?

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Par défaut
    Tu peux regarder du côté des behaviors pour faire ça. En particulier tu peux utiliser une action de type "CallMethodAction" l'affecter à un bouton, donner en cible le WebBrowser, et en paramètre le nom de la méthode à appeler. Tout cela se fait dans le XAML.

  5. #5
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Le pattern mvvm ne consiste pas à ne rien mettre dans la vue!
    La méthode que je t'ai exposé est typiquement pourquoi il y'a un système de messagerie dans le mvvm light toolkit.
    Elle est donc parfaitement mvvm friendly.

  6. #6
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Par défaut
    Merci beaucoup pour vos réponses.

    @Jérem22 : Je vais me pencher sur les behaviors. Je ne connaissait pas du tout.
    @PitMaverick78 : Je crois que je vais relire quelques trucs sur le MVVM

  7. #7
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    Tu as une liste de behaviors disponibles sur codeplex:
    http://expressionblend.codeplex.com/...=Documentation
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  8. #8
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Le but principal du mvvm est de séparer les couches du côté client: une couche présentation, une couche accès aux données et une couche métier.
    Afin d'augmenter la testabilité, la couche de présentation doit comporter le moins de code possible dans le code-behind (le moins ne signifie pas zéro, là est la nuance).
    Le but est que le viewmodel présente des propriétés, des commandes, etc à une vue sans que le viewmodel ne connaisse la vue. Ici, le viewmodel informe un receveur qu'il ne connait pas. La vue traite comme elle veut le message. Le pattern est respecté.

    On rencontre le même genre de problèmatique quand on veut utiliser des boites de dialogue.

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

Discussions similaires

  1. [split]methode non définie pour le type string
    Par maniolo dans le forum Langage
    Réponses: 12
    Dernier message: 12/04/2006, 16h59
  2. objShell.CurrentDirectory: methode non trouvee
    Par D[r]eadLock dans le forum VBScript
    Réponses: 4
    Dernier message: 14/12/2005, 18h26
  3. Package present mais methode non reconnu !!
    Par Battosaiii dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 13/12/2005, 10h19
  4. Methode non trouvé sur objet Graphics2D
    Par staive dans le forum 2D
    Réponses: 14
    Dernier message: 26/10/2005, 10h01
  5. [JSF]Probleme de methode non trouvé
    Par VincentP dans le forum JSF
    Réponses: 1
    Dernier message: 12/10/2005, 17h43

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