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

C# Discussion :

WPF TreeView avec items statiques / dynamiques


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Décembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Décembre 2007
    Messages : 40
    Points : 20
    Points
    20
    Par défaut WPF TreeView avec items statiques / dynamiques
    Bonsoir,
    j'ai une application en WPF et j'ai des objets

    Serveur
    Name : string
    ListC : List<Coffre>

    Coffre
    Name : string
    ListC : List<Classe>
    ListP : List<Proprietes>

    Classe
    Name : string
    ListI : List<Info1>

    Propriete
    Name : string
    ListI : List<Info2>

    J'ai créé une liste d'objets Serveur (List<Serveur>) que j'ai liée à un TreeView.ItemSource.

    Ma question est :
    comment faire pour pouvoir mixer des données dynamiques et statiques et avoir l'arborescence suivante, en sachant que si la liste de serveurs était vide, il me faudrait afficher "Serveurs", et que lorsqu'un coffre est présent mais qu'il n'y a pas de classes et/ou de propriétés et il faudrait afficher "Classes" et "Propriétés" (voir Coffre2)?

    Serveurs <== statique
    |____>Serveur 1 <== dynamique
    |____> Coffre1 <== dynamique
    |____> Classes <== statique
    |____> Classe1
    |____> Infos10 <== dynamique
    |____> Infos11
    |____> Classe2
    |____> Classe2
    |____> Propriétés <== statique
    |____> Propriété1
    |____> Infos20 <== dynamique
    |____> Infos21
    |____> Propriété2
    |____> Propriété3
    |____> Coffre2 <== dynamique
    |____> Classes <== statique

    |____> Propriétés <== statique

    |____> Coffre3 <== dynamique
    |____>Serveur 2 <== dynamique

    J'ai essayé de créer une collection en XAML, ainsi j'arrive à afficher les mots "Classes" pour chaque coffre, mais je n'arrive pas à afficher les deux sous rubriques "Classes" et "Propriétés" en même temps et à lier les éléments correspondants sous les bonnes rubriques.

    Quelqu'un a-t-il une idée pour faire cela ?

    Merci par avance.

    Cordialement.

    Raph

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Points : 674
    Points
    674
    Par défaut
    Pour un truc comme ça, je te conseille d'utiliser le pattern MVVM.
    Dans cet article, tu trouveras une bonne base. (surtout la seconde partie "Demo2")
    L'idée c'est de tout rendre dynamique, et c'est ton modèle derrière qui assure ta cohérence métier (éléments statiques ou dynamique, la distinction n'a pas lieu d'être cablée dans l'UI).

  3. #3
    Membre à l'essai
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Décembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Décembre 2007
    Messages : 40
    Points : 20
    Points
    20
    Par défaut
    Merci chrisdot,
    je vais étudié cette source.
    Je vais donc créer un modèle pour "Classes" et "Propriétés" et ce sont eux que j'appellerai et qui auront leurs items respectifs.

    J'essaie cela.

    Cordialement.

    Raph

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Points : 674
    Points
    674
    Par défaut
    Et pour serveur et coffre aussi...

  5. #5
    Membre à l'essai
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Décembre 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Décembre 2007
    Messages : 40
    Points : 20
    Points
    20
    Par défaut
    Merci encore chrisdot.
    En fait , j'ai créé autant d'objets ViewModel (comme indiqué dans le fichier démo téléchargeable) que de niveaux dans mon TreeView.

    Mes objets dynamiques existaient déjà.
    Il a fallu un peu remanier mes objets, car moi je créais tout mes objets et remplissaient toutes les informations au lancement de l'application, même celles que l'on n'utilisent pas (et de la maison c'était relativement long)
    alors que le principe de l'objet ViewModel, c'est de créer les objets et de récupérer les informations lorsque l'on déroule un niveau, au coup par coup.

    Et j'ai créé des objets statiques pour les catégories, et les utilisent comme les objets dynamiques (ils ne renvoient qu'une seule informations, la catégorie).

    En résumé, par niveau, il y un objet conteneur, et un objet ViewModel.

    C'est pas très facile à appréhender au début mais quand on a pris le coup ça va.

    Raph

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/12/2014, 22h13
  2. Réponses: 13
    Dernier message: 10/09/2009, 12h42
  3. WPF ListView avec Checkbox, trouver l'item qui a été Checked
    Par fmadore dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 09/12/2008, 17h21
  4. [WPF] TreeView avec CheckBox en cascades?
    Par bakonu dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 18/07/2008, 10h59
  5. Réponses: 2
    Dernier message: 19/08/2005, 16h02

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