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 :

Tri de colonne dans un listview..


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 74
    Par défaut Tri de colonne dans un listview..
    Bonjour, j'ai un petit problème avec un listview....

    Sur MSDN on me donne un exemple en C#, mais en essayant de l'implementer.... pouf une erreur "does not implement interface member ..."

    donc... voici mon code



    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
    28
    // ColumnClick event handler.
    privatevoid lvwResult_ColumnClick(object o, ColumnClickEventArgs e)
    {
    // Set the ListViewItemSorter property to a new ListViewItemComparer 
    // object. Setting this property immediately sorts the 
    // ListView using the ListViewItemComparer object.
    this.lvwResult.ListViewItemSorter = newListViewItemComparer(e.Column);
    }
    }
    
    classListViewItemComparer : IComparer<String>
    {
    privateint col;
    public ListViewItemComparer()
    {
    col = 0;
    }
    public ListViewItemComparer(int column)
    {
    col = column;
    }
    publicint Compare(object x, object y)
    {
    returnString.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
    }
    }
    

  2. #2
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    euh...

    de tete, compare, ce serait plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public int Compare(string x, string y)
    {
    return String.Compare(x,y);
    }
    parce que tu utilises línterface IComparer<string>, il attends que compare compare des strings, pas des objets...

    Dasn ton cas, tu voudras d'ailleurs probablement faire un IComparer<ListViewItem>

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 74
    Par défaut
    J'ai essayé les changements que tu m'as proposé.... et maintenant, j'ai une nouvelle erreur


    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
    classListViewItemComparer : IComparer<ListViewItem>
    {
    privateint col;
    public ListViewItemComparer()
    {
    col = 0;
    }
    public ListViewItemComparer(int column)
    {
    col = column;
    }
    publicint Compare(ListViewItem x, ListViewItem y)
    {
    returnString.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
    }
    }
    
    Pour la méthode compare, j'avais laissé object, mais encore, ça marchait pas, j'ai essayé listviewitem pas mieux...

    voici l'erreur générée :
    Error 1 'Gestion.ListViewItemComparer' does not implement interface member 'System.Collections.Generic.IComparer<System.Windows.Forms.ListViewItem>.Compare(System.Windows.Forms.ListViewItem, System.Windows.Forms.ListViewItem)' C:\Documents and Settings\Ian\My Documents\Visual Studio 2008\Projects\Gestion\Gestion\Forms\frmRechercheResult.cs 92 11 Gestion

  4. #4
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    euh..dis moi, le code, c'est du copier-coller ???

    parce que de ce que je me rappelle, ca devrai plus ou moins marcher

    Si j'ai le temps demain, je fais un petit proto...

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 74
    Par défaut
    Citation Envoyé par pvialatte Voir le message
    euh..dis moi, le code, c'est du copier-coller ???

    parce que de ce que je me rappelle, ca devrai plus ou moins marcher

    Si j'ai le temps demain, je fais un petit proto...
    Salut pvialatte,

    en effet, c'Est bien du copier coller... et je m'arrache les cheveux de la tête à essayer de trouver le bobo..... mais bon...... je vais essayer quelques petits trucs ce soir... et on verra bien!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 74
    Par défaut
    Ouf....


    j'ai résolu le problème.... (je crois à tout le moins, maintenant, ça marche)

    J'ai du ajouter au début du fichier :
    using System.Collections;

    car je n'avais que System.Collections.Generic;

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

Discussions similaires

  1. Empêcher de modifier une colonne dans une listview
    Par Debenja dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 30/05/2009, 16h28
  2. Selectionner une colonne dans une listview
    Par jfdmagic dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 27/04/2009, 15h16
  3. Recuperer la valeur d'un colonne dans une listview
    Par skunkies dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/01/2009, 16h26
  4. Largeur d'une colonne dans une listview
    Par soso78 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 04/01/2008, 12h17
  5. Problème d'affichage de colonnes dans un listview
    Par claireP23 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 12/06/2007, 16h30

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