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 :

TreeView, HierarchicalDataTemplate et Binding depuis un DataSet


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Par défaut TreeView, HierarchicalDataTemplate et Binding depuis un DataSet
    Bonjour,

    je cherche à partir d'un DataSet, faire un TreeView hiérarchique comprenant des éléments dépliant qui affiches d'autres éléments.

    WPF:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <TreeView Name="TreeView1" ItemsSource="{Binding Groupes}">
        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate>
                <TextBlock Text="{Binding NomGroupe}" />
     
                <HierarchicalDataTemplate.ItemTemplate ItemSource="{Binding Personnes}">
                    <DataTemplate>
                        <TextBlock Text="{Binding NomPersonne}" />
                    </DataTemplate>
                </HierarchicalDataTemplate.ItemTemplate>
            </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>
    </TreeView>
    C#:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DataSet dataSet = new DataSet();
    DataAdapter dataAdapter = new SQLiteDataAdapter("SELECT * FROM 'PERSONNES' LEFT JOIN 'GROUPES' ON 'PERSONNES'.'GROUPEID' = 'GROUPES'.'ID'", dbConnection.ConnectionString);
    dataAda.Fill(dataSet);
     
    TreeView1.DataContext = dataSet;
    Mais je n'ai rien qui s'affiche, j'ai fais des recherches et rien du tout.
    Ma connexion ce fait bien, les données sont bien là, mais elle ne s'affiche pas lorsque je passe par un DataSet.
    Je pense à une erreur dans la relation Binding/Select avec Join, je ne suis pas très calé sur le sujet.

    Auriez vous une exemple qui fonctionne d'un TreeView depuis un DataSet?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Par défaut
    Bon, bah pour ceux que ça peu intéresser,

    il suffit de faire une relation avec le DataSet.

    Déjà niveau code, j'été pas bon, DataAdapter ne permet pas de stocker table à table, il faut donc faire un typage plus précis (étant en SQLite...).
    Ensuite, il faut biensur 2 requêtes (les deux tables) puis faire la relation.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DataSet dataSet = new DataSet();
    SQLiteDataAdapter dataAdapterGroupes = new SQLiteDataAdapter("SELECT * FROM 'GROUPES'", dbConnection.ConnectionString);
    SQLiteDataAdapter dataAdapterPersonnes = new SQLiteDataAdapter("SELECT * FROM 'PERSONNES'", dbConnection.ConnectionString);
    dataAdaGroupes.Fill(dataSet, "GROUPES");
    dataAdaPersonnes.Fill(dataSet, "PERSONNES");
     
    dataSet.Relations.Add("GroupesPersonnes", dataSet.Tables["GROUPES"].Columns["ID"], dataSet.Tables["PERSONNES"].Columns["ID"]);
     
    TreeView1.DataContext = dataSet;
    Voilà pour le coté C#

    maintenant en WPF, il suffit que lorsque l'on attaque le 2ème niveau, de binder sur la table de relations:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <TreeView Name="TreeView1" ItemsSource="{Binding GROUPES}">
        <TreeView.ItemTemplate>
            <HierarchicalDataTemplate>
                <TextBlock Text="{Binding NOMGROUPE}" />
     
                <HierarchicalDataTemplate.ItemTemplate ItemSource="{Binding GroupesPersonnes}">
                    <DataTemplate>
                        <TextBlock Text="{Binding NOMPERSONNES}" />
                    </DataTemplate>
                </HierarchicalDataTemplate.ItemTemplate>
            </HierarchicalDataTemplate>
        </TreeView.ItemTemplate>
    </TreeView>
    Voilà.

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

Discussions similaires

  1. [Débutant] TreeView à remplir depuis un dataset
    Par Speed41 dans le forum C#
    Réponses: 1
    Dernier message: 25/06/2015, 22h09
  2. [TreeView] HierarchicalDataTemplate et Binding
    Par al2000 dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 08/12/2011, 15h24
  3. Réponses: 1
    Dernier message: 15/09/2006, 11h24
  4. [C#] Rattacher un treeview à un fichier Xml ou DataSet
    Par LE NEINDRE dans le forum ASP.NET
    Réponses: 7
    Dernier message: 15/06/2006, 18h22
  5. C# - Créer un recordset depuis un dataset
    Par bossun dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/06/2006, 09h22

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