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 :

Parcourir un treeview


Sujet :

Windows Presentation Foundation

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 99
    Points : 53
    Points
    53
    Par défaut Obtenir tous les noeuds (Parcourir) d'un treeview
    Bonjour,

    Je souhaiterais parcourir un treeview et créer des éléments en fonction des valeurs situé dans ce treeview :

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    - grid
       -grid
          -textbox
          -label
       -grid
          -label
          -image
    J'aimerais pouvoir reconstruire cette architecture dans mon code en donnant ce treeview en entrée.

    D'avance merci,

    Ju

  2. #2
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Salut,

    Cet article devrait t'aider :
    http://www.codeproject.com/KB/WPF/Tr...ViewModel.aspx

    Il explique clairement comment utiliser le pattern MVVM pour l'utilisation du TreeView, ce qui est indispensable pour ce contrôle.
    Tu trouveras d'ailleurs un exemple de recherche d'élément dans le TreeView

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 99
    Points : 53
    Points
    53
    Par défaut
    Merci pour l'aide, mais je ne vois pas comment garder la hiérarchie de mon treeview en récupérant les données qui m'intéressent.

    un petit bout de code d'exemple serait le bienvenue

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Février 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 114
    Points : 140
    Points
    140
    Par défaut
    Bonjour,

    Je pense comme Binoo que l'utilisation du pattern MVVM serait beaucoup mieux pour utiliser ton TreeView.

    Néanmoins, il doit bien être possible de parcourir l'arborescence de ton TreeView manuellement.

    Ton treeView possède une propriété Items dans lequel sont rangé les éléments de ton TreeView (des TreeViewItem).
    Dans chacun de tes TreeViewItem, tu trouveras 2 propriétés qui t'interessent :
    - Header
    - Items
    Dans Items, tu retrouves une collection d'éléments de type TreeViewItem qui correspondent aux sous-éléments de cet élément.
    Dans Header, tu trouveras l'élément graphique (en général un Grid, un Canvas ou un Label) qui est rendu pour l'élément.

    CF les références :
    TreeView : http://msdn.microsoft.com/fr-fr/libr...w_members.aspx
    TreeViewItem : http://msdn.microsoft.com/fr-fr/libr...m_members.aspx

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 99
    Points : 53
    Points
    53
    Par défaut
    Merci pour l'info mais mon problème c'est que j'ai un arbre et je voudrais parcourir toutes les branches récursivement afin d'obtenir tous les chemins.

    (car au final ce n'est pas un treeView visuel mais un parcours de balise html depuis un parseur et le but est de récupérer toute l'archi du html)

    En faites l'idéal serait d'appeler en récursif une méthode qui parcours toutes mes branches ...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 99
    Points : 53
    Points
    53
    Par défaut
    J'ai trouvé tout seul.

    Pour ceux que ça intéresse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    private void PrintRecursive(TreeNode treeNode)
    {
       // Print the node.
       System.Diagnostics.Debug.WriteLine(treeNode.Text);
       MessageBox.Show(treeNode.Text);
       // Print each node recursively.
       foreach (TreeNode tn in treeNode.Nodes)
       {
          PrintRecursive(tn);
       }
    }
     
    // Call the procedure using the TreeView.
    private void CallRecursive(TreeView treeView)
    {
       // Print each node recursively.
       TreeNodeCollection nodes = treeView.Nodes;
       foreach (TreeNode n in nodes)
       {
          PrintRecursive(n);
       }
    }

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

Discussions similaires

  1. Parcourir un treeview
    Par bullrot dans le forum C#
    Réponses: 5
    Dernier message: 07/06/2012, 10h50
  2. [TreeView] Parcourir
    Par lejert dans le forum Composants VCL
    Réponses: 10
    Dernier message: 30/09/2008, 18h01
  3. [VB2005 ]Parcourir tous les noeuds d'un treeview
    Par exclusif dans le forum Windows Forms
    Réponses: 1
    Dernier message: 28/07/2007, 22h38
  4. Parcourir enfants d'un noeud de TreeView
    Par PadawanDuDelphi dans le forum Delphi
    Réponses: 7
    Dernier message: 01/03/2007, 11h45
  5. Parcourir les noeuds d'un TreeView
    Par Andry dans le forum Composants VCL
    Réponses: 4
    Dernier message: 08/11/2005, 07h11

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