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 :

[MVVM] Binding View ViewModel


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 48
    Par défaut [MVVM] Binding View ViewModel
    Bonjour,
    Je débute avec le pattern MVVM et WPF et j'aiun petit souci que je ne parviens pas à résoudre (sans doute lié à mes lacunes pour l'instant en WPF).
    Dans mon fichier xaml, je voudrais afficher un wizard, comme celui-ci :
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <wizard:Wizard x:Name="wizard">
                <wizard:WizardPage Caption="First Step" Description="This is the first step." Title="1: First step"></wizard:WizardPage>
                <wizard:WizardPage Caption="Second Step" Description="This is the second step." Title="2: Another step" />
                <wizard:WizardPage Caption="Third Step" Description="This is the third step." Title="3: Yet another step" />
            </wizard:Wizard>

    Nickel, çà fonctionne bien. Maintenant j'aimerais que les pages du wizard ne soient pas fixées à l'avance, donc que leur nombre soit dynamique. Mon ViewModel comporte ceci:

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public ObservableCollection<IDiagnosticStep> Steps { get; set; }

    Qui représente une liste des étapes à afficher (un nom, une description, etc...)

    J'ai donc créé un converter qui converti une liste de IDiagnosticStep en WizardPage et fais ceci pour l'afficher :
    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <wizard:Wizard x:Name="wizard"   ItemsSource="{Binding Steps,Converter={StaticResource MyConverter}}">
     </wizard:Wizard>
    Le problème est que d'après ce que j'ai lu, en MVVM il faudrait pouvoir se passer complétement des converter et du maximum de code-behind dans la vue. Malgré pas mal de recherche je n'y parviens pas.
    Comment faire pour passer une liste de IDiagnosticStep à la vue et la convertir en WizardPage (ou autre, j'ai juste besoin du principe) ?

    Merci !

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Le problème est que d'après ce que j'ai lu, en MVVM il faudrait pouvoir se passer complétement des converter et du maximum de code-behind dans la vue.
    Cela ne veut pas dire que mettre des converters ou du code behind revient à enfreindre le pattern MVVM: tu peux mettre du code behind ou des converters, surtout si tu ne veux pas les tester unitairement.

    Citation Envoyé par Plawi Voir le message
    Comment faire pour passer une liste de IDiagnosticStep à la vue et la convertir en WizardPage (ou autre, j'ai juste besoin du principe) ?
    Tel que tu l'a fait, c'est parfait ! L'autre possibilité serait de créer tes pages directement dans le VM mais ce serait encore pire: ton VM aurait des références vers des éléments de la vue.... Là, tu casserais le pattern !

  3. #3
    Membre émérite Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Par défaut
    Bonjour,

    Tu peux utiliser le système de DataTemplate afin de spécifier une représentation pour tes diagnostics steps. Tu as un bon exemple à cette adresse: http://deepin.developpez.com/traduct...d-tour/4/#LIII

    Bon courage,

Discussions similaires

  1. Méthodologie Model-View-ViewModel au sein d'une application WPF
    Par Louis-Guillaume Morand dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 12/06/2015, 14h10
  2. Binding Singleton - ViewModel - View
    Par staticx dans le forum Windows Presentation Foundation
    Réponses: 10
    Dernier message: 15/12/2010, 13h02
  3. [MVVM] Binding à un ViewModel depuis le code-behind
    Par Gigi070 dans le forum Windows Presentation Foundation
    Réponses: 23
    Dernier message: 29/03/2010, 17h46
  4. MVVM + Binding + Validation de données
    Par goast dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 27/07/2009, 15h55

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