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 TabControl, TabItem, UserControl


Sujet :

Windows Presentation Foundation

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2007
    Messages : 127
    Points : 131
    Points
    131
    Par défaut MVVM TabControl, TabItem, UserControl
    Bonjour à tous,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <TabControl>
       <TabItem>
             <UserControl>
                  <Button Name="toto"/>
             <UserControl>
       </TabItem>
       <TabItem>
             Resultat
       </TabItem>
    </TabControl>
    La question est : comment depuis mon usercontrol changer de tabitem avec mon super beau bouton toto?
    Le mvvm c'est bien, très bien, mais là j'ai le cerveau en miettes pour trouver la solution

    Merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    2 méthodes :

    - la première très pragmatique... en utilisant un un onclick... et oui même john smith, qui est pourtant une référence dans le domaine, n'hésite pas dans certains cas à déroger à la règle...
    - la seconde plus réservée aux stakhanovistes, en utilisant et en programmant pour cela un "behavior" spécifique

    même si le but de mvvm est de limiter le code logique dans le code behind, et même de la supprimer afin de découpler l'application... il s'agit là de "comportement" d'interface plus que de logique... tu peux donc tout à fait l'inclure directement dans un onclick en plus il ne s'agit pas non plus d'un code compliqué, je dirais même qu'il est à la portée du premier designer venu...

    si tu es à l'aise avec le développement de behaviors tu peux très bien en faire un générique que tu pourra réutiliser pour d'autres utilisations, mais dans l'absolu ce n'est pas obligatoire.
    je dirais qu'après c'est une question de point de vue.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2007
    Messages : 127
    Points : 131
    Points
    131
    Par défaut
    Merci pour ta réponse

    Je prends la première solution du fait de mon ignorance des behaviors

    Par contre, tu dis que c'est tout bête à générer comme comportement, personnellement je ne m'en sors qu'avec ça pour le moment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ((TabControl)((TabItem)this.Parent).Parent).SelectedIndex = 1;
    As-tu plus simple ou plus cohérent ?

  4. #4
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Tu peux nommer ton TabControl via la propriété "Name" :
    puis :
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2007
    Messages : 127
    Points : 131
    Points
    131
    Par défaut
    Oui, mais mon tabcontrol n'existe pas dans mon usercontrol

    Ma hiérarchie est la suivante :

    Window
    Tabcontrol
    TabItem
    Usercontrol


    Ce qui fait que le code behind de mon uc n'a pas accès à celui de ma window

  6. #6
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    L'event-handler dont je parle n'a pas à être dans ton UC.

    Tu peux ajouter un event à ton UC qui a un sens plus précis que "Click" et le lever quand le bouton est cliqué.
    Puis tu y abonnes ta Window, via l'event-handler qui effectuera le traitement indiqué.

    Ainsi tu découples ton UC de son environnement.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2007
    Messages : 127
    Points : 131
    Points
    131
    Par défaut
    En générant les évènement moi même, je perds l'instanciation depuis le code xaml, ce qui me permet d'avoir le design dans blend
    Merci

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

Discussions similaires

  1. Binding: ToolBar.Buttons et Commandes de TabControl.TabItems ?
    Par sou_dj dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 07/06/2011, 13h14
  2. [MVVM] TabControl et ViewModel
    Par koyot3 dans le forum Windows Presentation Foundation
    Réponses: 13
    Dernier message: 04/03/2011, 12h44
  3. [MVVM] gestion des UserControls
    Par koyot3 dans le forum Windows Presentation Foundation
    Réponses: 16
    Dernier message: 23/02/2011, 13h58
  4. MVVM TabControl SelectedItem
    Par gridin dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 16/02/2011, 09h29
  5. lier BDD avec TabControl, TabItem ?
    Par italiasky dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 08/01/2010, 21h22

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