|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Tri dans un listView [ Archives / Graphique ] (t_barbillon)
Informations & options pour cette discussion
mercredi 24 août 2005 à 17:50:06 |
Tri dans un listView

t_barbillon
|
Salut, Comment faire pour que le tri dans une listView (Sorting) dépendent de la colonne cliquée ? En gros si l'utilisateur clique sur la colonne 1, la liste est trié suivant la colonne 1, sur la 2, suivant le contenu de la colonne 2 ... Peut ai-je raté un truc, mais là je suis perplexe !
|
|
|
mercredi 24 août 2005 à 18:05:49 |
Re : Tri dans un listView

zebobo5
|
Tu crée une classe de comparaison de données : class ListViewItemComparer : IComparer { private int col; private SortOrder order; public ListViewItemComparer() { col = 0; order = SortOrder.Ascending; } public ListViewItemComparer(int column, SortOrder order) { col = column; this.order = order; } public int Compare(object x, object y) { int returnVal= -1; returnVal = String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text); if (order == SortOrder.Descending) returnVal *= -1; return returnVal; } }Puis tu n'as plus qu'à faire un tri losque l'on clique sur l'entete de la colonne, d'où : private void listView1_ColumnClick(object sender, ColumnClickEventArgs e) { if (listView1.Sorting == SortOrder.Ascending) { listView1.Sorting = SortOrder.Descending; } else { listView1.Sorting = SortOrder.Ascending; } listView1.Sort(); this.listView1.ListViewItemSorter = new ListViewItemComparer(e.Column, listView1.Sorting); }Et voilà
ZeBobo5 N'oubliez pas de cloturer votre post.
|
|
|
jeudi 25 août 2005 à 10:30:16 |
Re : Tri dans un listView

t_barbillon
|
Merci, ça marche bien Mais je ne comprend pas comment est utilisé la methode Compare
|
|
|
jeudi 25 août 2005 à 10:47:15 |
Re : Tri dans un listView

zebobo5
|
int i = String.Compare("a", "b"); Resultat : i = -1;
int i = String.Compare("b", "a"); Resultat : i = 1;
dc si on met en ordre décroissant, i doit être du signe opposé soit : i *= -1;
dc si i = -1 alors 1er paramètre est avant le 2eme et si i = 1 alors 1er paramètre est apres le 2eme
ZeBobo5 N'oubliez pas de cloturer votre post.
|
|
|
jeudi 25 août 2005 à 11:24:57 |
Re : Tri dans un listView

t_barbillon
|
Jusque là j'avais compris, ce que je n'ai pas saisi c'est à quel moment la méthode compare est appelée !
|
|
|
vendredi 26 août 2005 à 00:12:07 |
Re : Tri dans un listView

coq
|
Réponse acceptée !
Salut, C'est le contrôle ListView qui le fait quand l'utilisateur clique sur les en-têtes de colonne ou lorsque tu appelles la méthode Sort. Cocoricoooooooo !!!! coq MVP Visual C#
|
|
|
vendredi 26 août 2005 à 08:27:24 |
Re : Tri dans un listView
|
vendredi 26 août 2005 à 09:24:14 |
Re : Tri dans un listView

zebobo5
|
Salut,
Moi j'aurai plutot penché sur le fait que lorsque tu fait :
this.listView1.ListViewItemSorter = new ListViewItemComparer(e.Column, listView1.Sorting);
La listView instancie la class et substitue sa méthode : this.listView1.ListViewItemSorter.Compare, par la nouvelle méthode Compare de la class ListViewItemComparer.
C'est vrai que lorsque tu fait un Sort(), il repasse dedans vu qu'on lui a assigné une nouvelle méthode de comparaison.
ZeBobo5 N'oubliez pas de cloturer votre post.
|
|
|
vendredi 26 août 2005 à 10:45:31 |
Re : Tri dans un listView

coq
|
En tout cas l'affectation de valeur sur cette propriété entraine elle aussi l'appel de la méthode Sort.
Cocoricoooooooo !!!! coq MVP Visual C#
|
|
|
jeudi 20 décembre 2007 à 00:32:48 |
Re : Tri dans un listView

sidommou
|
Salut, j'ai procédé comme vous l'avez di mais j'ai eu un pb avec .net2005. Il me sort une erreur sur la ligne suivante: CDContent_ListView.ListViewItemSorter = newListViewItemComparer(((ListViewItem)(e.Column)), CDContent_ListView.Sorting);
L'erreur est : Impossible de convertir le type 'int' en 'System.Windows.Forms.ListViewItem'
Si qlq un connais la solution à mon problème, merci d'avance de répondre.
|
|
|
Cette discussion est classé dans : listview, tri, colonne
Répondre à ce message
Sujets en rapport avec ce message
ListView et menu contextuel en C# [ par bigflo ]
Bonjour,Je cherche à mettre un menu contextuel sur une listview avec plusieurs colonnes en C#.J'y suis arrivé, mais lorsque je clique droit sur une co
Listview, pb avec les colonnes [ par defcoco ]
Voila mon probleme, j'ai une listview avec plusieurs colonnes, et je voudrai que lorsqu'on clique sur n'importe quel colonne ca fait un tri par rappor
listview et colonne [ par shinevilkyo ]
lu,voila mon pb j ai 3 colonnenumero, erreur et evenement je voudrai ajouter des element dedans mais je ne sais pas comment choisir ma colonne quelqu
Evénement tri colonne datagrid [ par _Bao_ ]
Bonjour,j'aimerais savoir quel est l'événement qui a lieu lorsque l'on clique sur le nom d'une colonne dans un datagrid (pour trier la colonne en ques
Trie nombre listview [ par syl2 ]
Bonjour,Je suis en train de réaliser un agenda en C# et je suis confronté au problème du trie d'une colonne d'une listview quand des nombres sont stoc
Colonne d'une listView [ par Online ]
Bonjour, Je vous explique mon problème qui est assez simple mais je ne trouve pas la solution.J'ai une listview composé de 2 colonnes. Je souhaite aff
Tri d'une ListView à l'aide des en-têtes [ par JuS ]
Bonjour,J'ai une ListView, avec une en-tête, contenant 3 colonnes.Je souhaiterai trier ma ListView suivant la colonne correspondant à l'en-tête qui se
ListView:la tite flèche de tri, elle est où??? [ par Fildomen ]
SalutComment faire pour affichier la flèche de tri dans les colonnes d'un listview, comme dans windows explorer??? je l'ai pas trouvé.MerciYaoYao !!
ListView : Resize de colonne [ par yfocal ]
Bonjour, j'ai un petit souci avec les listview. J'ai une listview avec, pour chacun des items, un Panel de couleur affiché dans une colonne (Pan
listview colonne [ par emmanuel9 ]
Bonjour,Quelqun serait t'il comment resizer les colonnes d'un listview en fonction de la taille du listview lui meme ? A la base les colonnes du listv
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version

HTC Magic
Entre 429€ et 429€
|