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 :

VB.NET WPF Liaison d'un DataGrid à un DataSet [Débutant]


Sujet :

Windows Presentation Foundation

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut VB.NET WPF Liaison d'un DataGrid à un DataSet
    Bonjour tout le monde,

    Je suis débutant en vb.net/wpf/mysql

    Je travaille sur Visual Studio 2010 et Framework .Net 4.0

    Mon souhait est d'afficher le résultat d'une requete MySQL sous forme d'un DataSet dans un DataGrid !

    Ce que je ne sais pas faire c'est lier le DataSet à la DataGrid !

    J'ai lu de divers articles traitant le fameux "Binding" sans que je puisse trouver solution à mon problème ..

    Voilà ce que j'ai fait :

    code xaml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
        <Grid>
            <DataGrid AutoGenerateColumns="False" Height="238" HorizontalAlignment="Left" Margin="43,26,0,0" Name="DataGrid1" VerticalAlignment="Top" Width="340" />
        </Grid>
    </Window>
    code vb.net:
    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
    23
    24
    25
    26
    27
    Imports System.Data
    Imports MySql.Data.MySqlClient
     
    Class MainWindow
     
        Public Property DataSource As Object
     
        Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
     
            Dim Connexion As MySqlConnection = New MySqlConnection("Server=X.
    X.X.X;Port=3306;Database=test;Uid=poskito;Pwd=poskito;")
     
            Connexion.Open()
     
            Dim Requete As String = "select user_id,user_pays from adh_users"
            Dim Commande As New MySqlCommand(Requete, Connexion)
            Dim Adaptateur As New MySqlDataAdapter(Commande)
            Dim MonDataSet As DataSet = New DataSet
     
            Adaptateur.Fill(MonDataSet, "adh_users")
     
            DataGrid1.ItemsSource = MonDataSet.Tables("adh_users")
     
            Connexion.Close()
     
        End Sub
    End Class
    Comment donc lier ce DataGrid au DataSet ?

  2. #2
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Tu as mis la propriété AutoGenerateColumns de ta DataGrid à "False", de ce fait, tu dois lui fournir la définition des différentes colonnes.

    Dans un 1er temps, passe cette propriété à "True" et à priori, tu devrais déjà avoir un résultat.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut
    C'est fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
        <Grid>
            <DataGrid AutoGenerateColumns="True" Height="238" HorizontalAlignment="Left" Margin="43,26,0,0" Name="DataGrid1" VerticalAlignment="Top" Width="340" />
        </Grid>
    </Window>
    mais ça ne change rien, je n'ai pas le résultat. Voilà ce que ça fait :



    D'autres propositions ?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Poskito Voir le message
    mais ça ne change rien, je n'ai pas le résultat. Voilà ce que ça fait :

    Tu pourrais fournir la loupe avec ?

    Le code semble correct a priori...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Poskito Voir le message
    Bah ça fait pas beaucoup avancer les choses ça... Je vais être un peu plus explicite : pourrais-tu envoyer une version de l'image où on voit quelque chose ?

  7. #7
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    Question subsidiaire, la requête renvoie bien des données ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut
    Voilà :

    Images attachées Images attachées  

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut
    Citation Envoyé par Pongten Voir le message
    Question subsidiaire, la requête renvoie bien des données ?
    Oui, j'ai testé la requête sous SQL Yog et elle s'execute sans problème.

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    OK, donc tu as les lignes, mais pas les colonnes...

    Ce qui est bizarre, c'est que ton code ne devrait pas marcher du tout...

    Si tu as Option Strict On, cette ligne ne devrait pas compiler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataGrid1.ItemsSource = MonDataSet.Tables("adh_users")
    car ItemsSource est de type IEnumerable, et DataTable n'implémente pas cette interface

    Si tu as Option Strict Off, ça devrait compiler, mais planter à l'exécution :
    Impossible d'effectuer un cast d'un objet de type 'System.Data.DataTable' en type 'System.Collections.IEnumerable'.
    Bref, de toutes façons le code n'est pas correct, contrairement à ce que je pensais. Il faut faire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataGrid1.ItemsSource = MonDataSet.Tables("adh_users").DefaultView
    Ca utilise la vue par défaut de la table, plutôt que la table elle-même

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut
    Citation Envoyé par tomlev Voir le message
    OK, donc tu as les lignes, mais pas les colonnes...

    Ce qui est bizarre, c'est que ton code ne devrait pas marcher du tout...

    Si tu as Option Strict On, cette ligne ne devrait pas compiler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataGrid1.ItemsSource = MonDataSet.Tables("adh_users")
    car ItemsSource est de type IEnumerable, et DataTable n'implémente pas cette interface

    Si tu as Option Strict Off, ça devrait compiler, mais planter à l'exécution :
    Impossible d'effectuer un cast d'un objet de type 'System.Data.DataTable' en type 'System.Collections.IEnumerable'.
    Bref, de toutes façons le code n'est pas correct, contrairement à ce que je pensais. Il faut faire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataGrid1.ItemsSource = MonDataSet.Tables("adh_users").DefaultView
    Ca utilise la vue par défaut de la table, plutôt que la table elle-même
    Ca marche !

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut
    Ce que je cherche véritablement est plus poussé que ça .. je m'explique :

    Pour l'instant, j'arrive à afficher ce tableau de 2 colonnes:

    |Étapes                       | NomUserControlCorrespondant
    |------------------------------------------------------
    |1)inscription-user(text)  |   lblUserControlInscription(text)
    |2)Détails_user(text)      |   lblUserControlDetailsUser(text)
    

    J'aimerais afficher un tableau d'1 colonne :

    |Étapes                     | 
    |1)inscription-user(Bouton)  |   
    |2)Détails_user(Bouton)      |  
    
    En faite, au clic de l'étape i, je chargerai le UserControl i

    Dans un premier temps, je cherche à convertir donc du texte en boutton ! Ma présente question est donc : Comment convertir les étapes (qui sont actuellemen en texte) en des boutons ?

  13. #13
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    J'ai rien compris... quel est le rapport avec ce qui précède ?

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut
    Citation Envoyé par tomlev Voir le message
    J'ai rien compris... quel est le rapport avec ce qui précède ?
    En faite, avant, j'avais juste pris pour exemple les champs user_id et user_pays ..

    En réalité ce qui m'interesse dans ce que je fais ce sont des champs Étapes et NomUserControlCorrespondant

    Par rapport à avant, si on veut :

    user_id <=> Étapes
    user_pays <=> NomUserControlCorrespondant

    Tout simplement !

    J'espère que ma question est plus claire maintenant

  15. #15
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Pour mettre le bouton, il faut déclarer manuellement une colonne de type DataGridTemplateColumn dans le DataGrid, avec un Template qui déclare le bouton. Ca pourrait donner quelque chose comme ça :

    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <DataGridTemplateColumn Header="Etape">
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <DockPanel>
                    <Button DockPanel.Dock="Right" Content="Bouton" Click="EtapeButtonClick />
                    <TextBlock Text="{Binding NomEtape}" />
                </DockPanel>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>

    Et dans le code, tu peux faire un truc comme ça pour récupérer le nom du UserControl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub EtapeButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs)
        Dim button = CType(sender, Button)
        Dim row = CType(button.DataContext, DataRowView)
        Dim userControlName = CString(row("NomUserControlCorrespondant"))
     
    End Sub

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Pour mettre le bouton, il faut déclarer manuellement une colonne de type DataGridTemplateColumn dans le DataGrid, avec un Template qui déclare le bouton. Ca pourrait donner quelque chose comme ça :

    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <DataGridTemplateColumn Header="Etape">
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <DockPanel>
                    <Button DockPanel.Dock="Right" Content="Bouton" Click="EtapeButtonClick />
                    <TextBlock Text="{Binding NomEtape}" />
                </DockPanel>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>

    Et dans le code, tu peux faire un truc comme ça pour récupérer le nom du UserControl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub EtapeButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs)
        Dim button = CType(sender, Button)
        Dim row = CType(button.DataContext, DataRowView)
        Dim userControlName = CString(row("NomUserControlCorrespondant"))
     
    End Sub
    J'ai compris le code xaml que tu me proposes ici.
    En revanche, je ne comprends pas le code vb.net que tu me proposes et par conséquent, je ne comprends comment je pourrai l'utiliser. J'ai regardé la fonction CType et ça ne m'a pas avancé plus que ça ...

    Puis-je avoir d'avantages d'explications sur le code vb ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub EtapeButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs)
        Dim button = CType(sender, Button)
        Dim row = CType(button.DataContext, DataRowView)
        Dim userControlName = CString(row("NomUserControlCorrespondant"))
     
    End Sub

  17. #17
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Poskito Voir le message
    J'ai compris le code xaml que tu me proposes ici.
    En revanche, je ne comprends pas le code vb.net que tu me proposes et par conséquent, je ne comprends comment je pourrai l'utiliser. J'ai regardé la fonction CType et ça ne m'a pas avancé plus que ça ...

    Puis-je avoir d'avantages d'explications sur le code vb ?
    Bah CType est la fonction de "cast" (conversion de type) de VB.NET ; le paramètre sender est de type Object (car c'est comme ça que le delegate de l'évènement Click est déclaré), mais toi tu sais qu'en l'occurrence c'est un Button, donc tu fais un cast pour pouvoir le manipuler en tant que Button.

    Ensuite, comme pour tous les contrôles de liste, chaque ligne de la DataGrid prend pour DataContext l'élément de donnée qui lui correspond. Le bouton fait partie de la ligne, donc il hérite de ce DataContext. En l'occurrence, puisque la source de donnée est une DataView, le type des éléments est DataRowView. On fait donc un cast du DataContext en DataRowView pour récupérer la ligne de la DataView qui correspond au bouton.

    Enfin, pour récupérer une cellule de cette ligne, on y accède par son nom, et comme on sait que c'est une donnée de type String, on cast en String (CString est juste un raccourci pour CType(..., String))

    A ce stade, tu as le nom du UserControl, je sais pas exactement ce que tu veux faire avec...

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Bah CType est la fonction de "cast" (conversion de type) de VB.NET ; le paramètre sender est de type Object (car c'est comme ça que le delegate de l'évènement Click est déclaré), mais toi tu sais qu'en l'occurrence c'est un Button, donc tu fais un cast pour pouvoir le manipuler en tant que Button.

    Ensuite, comme pour tous les contrôles de liste, chaque ligne de la DataGrid prend pour DataContext l'élément de donnée qui lui correspond. Le bouton fait partie de la ligne, donc il hérite de ce DataContext. En l'occurrence, puisque la source de donnée est une DataView, le type des éléments est DataRowView. On fait donc un cast du DataContext en DataRowView pour récupérer la ligne de la DataView qui correspond au bouton.

    Enfin, pour récupérer une cellule de cette ligne, on y accède par son nom, et comme on sait que c'est une donnée de type String, on cast en String (CString est juste un raccourci pour CType(..., String))

    A ce stade, tu as le nom du UserControl, je sais pas exactement ce que tu veux faire avec...
    ah d'accord ! Comme toute la ligne a le même Datacontext, on appele le DataContext du bouton qui correspond donc au DataContext de toute la ligne. Ainsi on recupere toute la ligne en la convertissant en DataViewRow


    Donc là du coup, j'obtiens quelque chose là avec ça ! Maintenant j'ai deux soucis :

    1) Je ne veux "afficher" que la colonne "Étapes" (La colonne des boutons là) et je ne vois pas comment "cacher" les deux colonnes (la colonne centrale et la colonne de droite).Voire PJ1. J'ai réussi à faire un petit peu mieux : voire PJ2 .. mais j'ai traits qui apparaissent :/

    2) J'ai une ligne vide qui s'ajoute seule. La requête SQL me retourne juste ce qu'il faut (sans cette ligne en plus). J'en déduis que le probleme est au niveau de vb. Pour y remedier, j'ai regardé les propriétés les de la DataGrid mais rien j'arrive pas à la retirer cette derniere ligne vide (Proprietes de la DataGrid en PJ3) !
    Images attachées Images attachées    

  19. #19
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Poskito Voir le message
    1) Je ne veux "afficher" que la colonne "Étapes" (La colonne des boutons là) et je ne vois pas comment "cacher" les deux colonnes (la colonne centrale et la colonne de droite).Voire PJ1. J'ai réussi à faire un petit peu mieux : voire PJ2 .. mais j'ai traits qui apparaissent :/
    C'est parce qu'il génère automatiquement une colonne pour chaque colonne de la DataTable. Mets AutoGenerateColumns="False".


    Citation Envoyé par Poskito Voir le message
    2) J'ai une ligne vide qui s'ajoute seule. La requête SQL me retourne juste ce qu'il faut (sans cette ligne en plus). J'en déduis que le probleme est au niveau de vb. Pour y remedier, j'ai regardé les propriétés les de la DataGrid mais rien j'arrive pas à la retirer cette derniere ligne vide (Proprietes de la DataGrid en PJ3) !
    C'est la ligne de saisie, pour que l'utilisateur puisse ajouter une nouvelle ligne. Mets CanUserAddRows="False".


    Bon, finalement, tu ne veux qu'une seule colonne, pas de traits, et pas la possibilité d'ajouter des lignes... Donc en fait pourquoi tu utilises un DataGrid ? Ce n'est visiblement pas du tout adapté à ce que tu veux faire...

    Si tu veux juste une liste de boutons, utilise plutôt un ItemsControl ; c'est le contrôle de liste le plus basique, qui se contente d'afficher les éléments, sans gestion de colonnes, de sélection, etc. Ca donne quelque chose comme ça :

    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <ItemsControl Name="ListEtapes">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Button DockPanel.Dock="Right" Content="{Binding NomEtape}" Click="EtapeButtonClick" />
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 13
    Par défaut
    Citation Envoyé par tomlev Voir le message
    C'est parce qu'il génère automatiquement une colonne pour chaque colonne de la DataTable. Mets AutoGenerateColumns="False".




    C'est la ligne de saisie, pour que l'utilisateur puisse ajouter une nouvelle ligne. Mets CanUserAddRows="False".


    Bon, finalement, tu ne veux qu'une seule colonne, pas de traits, et pas la possibilité d'ajouter des lignes... Donc en fait pourquoi tu utilises un DataGrid ? Ce n'est visiblement pas du tout adapté à ce que tu veux faire...

    Si tu veux juste une liste de boutons, utilise plutôt un ItemsControl ; c'est le contrôle de liste le plus basique, qui se contente d'afficher les éléments, sans gestion de colonnes, de sélection, etc. Ca donne quelque chose comme ça :

    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <ItemsControl Name="ListEtapes">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Button DockPanel.Dock="Right" Content="{Binding NomEtape}" Click="EtapeButtonClick" />
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
    D'accord et ça marche en plus :p Merci tomlev !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [VB.NET] Ajouter une CheckBox à un DataGrid
    Par graphicsxp dans le forum Windows Forms
    Réponses: 5
    Dernier message: 31/03/2005, 11h20
  2. [VB.NET] Cacher HeaderText d'un DataGrid
    Par prem's dans le forum ASP.NET
    Réponses: 2
    Dernier message: 18/02/2005, 10h49
  3. [VB.NET] Recuperer numero ligne dans DATAGRID apres event
    Par stephane93fr dans le forum Windows Forms
    Réponses: 4
    Dernier message: 13/01/2005, 12h58
  4. [VB.NET] Disparition scrollBar dans une DataGrid
    Par aphykite dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/10/2004, 11h29
  5. [VB.NET] Focus sur cellule de DataGrid
    Par daner06 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/05/2004, 22h12

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