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 :

Gérer plusieurs colonnes dans une ListView


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    Par défaut Gérer plusieurs colonnes dans une ListView
    Bonjour,

    Dans mon programme j'ai une ListView de plusieurs colonnes dont voici le XAML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <ListView Margin="8,46,8,8" IsSynchronizedWithCurrentItem="True" x:Name="TacheListe" SelectionChanged="TacheListe_SelectionChanged" SelectionMode="Single">
    <ListView.View>
    <GridView x:Name="TacheGridView" >	
    <GridViewColumn Header="id" Width="40" x:Name="TacheViewID"/>	
    <GridViewColumn Header="titre" Width="120" x:Name="TacheViewTitre"/>
    <GridViewColumn Header="Catégorie" Width="100" x:Name="TacheViewCat"/>
    </GridView>
    </ListView.View>
    </ListView>
    Ensuite, je souhaite, en C# pouvoir ajouter des élements à cette ListView,

    Avant je procédais ainsi (quand je n'avais qu'une seule colonne) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TacheListe.Items.Add("contenu");
    Or maintenant quand je procéde ainsi, ca met "contenu" dans chacune des colonnes, or je voudrais différencier ce que je met dans chacune des colonnes.

    J'ai regardé un peu sur le net, et j'ai trouvé des choses avec "SubItems" mais ca ne fonctionne pas chez moi, "SubItems" n'est même pas reconnu par le compilo.

    Quelqu'un saurait comment pouvoir ajouter correctement des élements en différenciant les colonnes ?

    Merci beaucoup.

  2. #2
    Membre chevronné Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Par défaut
    Salut,
    en principe quand tu utilises GridView, tu spécifies des DataTemplates (propriété Celltemplate de GridViewColumn). Du coup du peux dire par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <GridViewColumn>
        <GridViewColumn.CellTemplate>
            <DataTemplate DataType={x:type toto:tutu}>
                <TextBlock Text={Binding LaProprieteDeTutuQueJeVeuxAfficherIci}
    ...
    ...
    Ceci est valable si tu met un objet par ligne, et que tu souhaites afficher telle ou telle propriété dans telle ou telle colonne.
    Maintenant, si tu veux afficher des objets différents dans chaque colonne, soit tu utilises autre chose que la ListView, soit tu créés un "superobjet" qui expose les sous-objets en propriétés.

  3. #3
    Membre éprouvé

    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    Par défaut
    J'ai pas super bien compris désolé...

    En l'occurence, là je vais actualiser les élements présents via le C#.

    Dans ce cas, ca sera la textbox que je vais changer ? Mais à quoi sert de mettre le {binding...} et comment vraiment m'en servir ensuite ?

    Ca serait plus simple un tuto, j'ai cherché mais pas trop trouvé, en aurais-tu un ?

    Merci

  4. #4
    Membre chevronné Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Par défaut
    Sur la msdn :
    http://msdn.microsoft.com/fr-fr/library/ms750709.aspx

    utiliser la ListView (voire tous les contrôles de présentation dérivant de ItemsControl) sans utiliser de DataTemplate, c'est se priver d'enormes possibilités, c'est même ne pas faire les choses comme WPF l'a prévu.

    je t'invite à bûcher comme il faut tout ce qui touche au databinding et aux DataTemplates, tu vas voir c'est très facile et ça t'ouvre de super possibilités

  5. #5
    Membre éprouvé

    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    Par défaut
    Merci, je vais donc bien bucher tout ca

    Merci.

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

Discussions similaires

  1. Gérer plusieurs connexions dans une seule page Aspx
    Par Inspirate dans le forum Accès aux données
    Réponses: 6
    Dernier message: 12/07/2007, 16h06
  2. Afficher plusieurs colonnes dans une ListBox
    Par codial dans le forum Bases de données
    Réponses: 11
    Dernier message: 23/01/2007, 13h48
  3. Réponses: 5
    Dernier message: 27/12/2006, 17h56
  4. Réponses: 15
    Dernier message: 27/09/2006, 12h46

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