ListView problème pour trier les colonnes [Résolu]

Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
- - Dernière réponse : cs_emmanuel9
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
- 10 janv. 2006 à 13:29
Bonjour à tous,

J'ai un listview avec plusieurs colonnes qui contiennent chacunes des types differents DateTime, String, int etc.....

Et j'aurais voulu que quand on clique sur une colonne ca trie par ordre croissant puis decroissant et par colonnes, dont j'ai impletement l'interface IComparer et j'ai fais : (c'est du C++.net) :

public : int Compare(Object * e1, Object * e2)
{

ListViewItem * a = dynamic_cast<ListViewItem*>(e1);
ListViewItem * b = dynamic_cast<ListViewItem*>(e2) ;

if (a->SubItems->get_Item(colonne)->Text->CompareTo(b->SubItems->get_Item(colonne)->Text) > 0)
{
if (croissant_decroissant == true)
return 1 ;
else
return -1 ;
}

if (a->SubItems->get_Item(colonne)->Text->CompareTo(b->SubItems->get_Item(colonne)->Text) < 0)
{
if (croissant_decroissant == true)
return -1 ;
else
return 1 ;
}

if (a->SubItems->get_Item(colonne)->Text->CompareTo(b->SubItems->get_Item(colonne)->Text) == 0)
return 0 ;

}

Mais là en faite il me convertis tous en String puis il me trie par ordre croissant ou decroissant mais ca ne marche pas pour les date ou pour les nombres décimaux. Comment feriez vous à ma place y'a t'il un moyen de connaitre le type de chaque colonne ?

Par avance, merci.
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
3
Merci
bah... étant donnée que ce qu'affiche un listview ce n'est que des strings... lui ne peut pas le savoir.

par contre, toi tu peux construire 3 classes implémentant IComparer

LVStringComparer
LVDateTimeComparer
LVDecimalComparer

et comme ca tu peux acrocher les comparer que tu veux aux colonnes

Sébastien FERRAND
[MVP C#]

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 207 internautes nous ont dit merci ce mois-ci

Commenter la réponse de sebmafate
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
0
Merci
ok, merci de ta réponse.
Commenter la réponse de cs_emmanuel9