cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 juin 2010
-
10 janv. 2006 à 12:39
cs_emmanuel9
Messages postés903Date d'inscriptionmercredi 23 février 2005StatutMembreDernière intervention16 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 ?