Déplacer les items d'une listview sans drag&drop

dysko Messages postés 48 Date d'inscription mercredi 22 juin 2005 Statut Membre Dernière intervention 7 mars 2007 - 15 nov. 2005 à 14:57
dysko Messages postés 48 Date d'inscription mercredi 22 juin 2005 Statut Membre Dernière intervention 7 mars 2007 - 15 nov. 2005 à 21:36
J'aimerais savoir si on peut retrier la listview à partir d'un index en particulier...sans redessiner tout le controle ou alors recréer une autre list view... ??

Il existe pas une méthode pour ??

DyskO =>> blackfamilyinc.free.fr !

8 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
15 nov. 2005 à 15:30
je ne connais aucune méthode permettant de trier les items d'une listview entre 2 index.

par contre, tu peux toujours copier ces items dans une nouvelle collection (ArrayList), la triée et replacer ces items dans le listview de départ

Sébastien FERRAND
[MVP C#]
0
dysko Messages postés 48 Date d'inscription mercredi 22 juin 2005 Statut Membre Dernière intervention 7 mars 2007
15 nov. 2005 à 16:04
C'est ce que je voulais dire par "créer une autre list view"...

Bon bin ok...merci pr ta réponse

DyskO =>> blackfamilyinc.free.fr !
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
15 nov. 2005 à 18:17
Salut,

Euh, tu parles d'effectuer un vrai tri ou juste de faire monter/descendre l'item sélectionné ?

/*
coq
MVP Visual C#
*/
0
dysko Messages postés 48 Date d'inscription mercredi 22 juin 2005 Statut Membre Dernière intervention 7 mars 2007
15 nov. 2005 à 19:20
Bin un tri par rapport aux autres...

En fait moi je veux faire un recherche sur un list view contenant des noms de personnes.
Donc j'ai un texbox où dès qu'on saisit un lettre, bin il cherche si le nom existe dans la liste et par conséquent fait remonter le premier item correspondant mais faut que ceux qui suivent et qui commence par la meme lettre le suivre...
Donc en gros c'est un tri

Pour l'instant j'utilise un listview temporaire que je trie puis que je renvoie ...

De quoi tu parlais toi ?

DyskO =>> blackfamilyinc.free.fr !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
15 nov. 2005 à 20:18
J'étais partis sur une idée du genre bouton Up/Down pour monter/descendre l'item
L'idée générale pourrait correspondre, après adaptation :

En gros (pour le Up/Down) :
private void MoveItemUp(ListView lv, ListViewItem item)
{
if ( item.Index == 0 )
{
return;
}


int newIndex = item.Index-1;
item.Remove();
lv.Items.Insert(newIndex, item);
}


private void MoveItemDown(ListView lv, ListViewItem item)
{
if ( item.Index == lv.Items.Count-1 )
{
return;
}


int newIndex = item.Index+1;
item.Remove();
lv.Items.Insert(newIndex, item);
}

L'idée générale est peut être adaptable à ton problème, il suffirait de supprimer tes items (Remove) puis de les insérer en index 0, ce qui pourrait économiser le traitement de l'intégralité des items.
A toi de voir si le jeu en vaut la chandelle.

/*
coq
MVP Visual C#
*/
0
dysko Messages postés 48 Date d'inscription mercredi 22 juin 2005 Statut Membre Dernière intervention 7 mars 2007
15 nov. 2005 à 20:39
Effectivement ta soluc est pas mauvaise....
J'arrivais pas à réindexer les Items puisque la propriété Index est ReadOnly...

Mais d'un autre coté elle est pus complexe car il me faut quand même traîter tous les index puisque même ceux que je bouge pas devront forcément descendre dans la liste...

DyskO =>> blackfamilyinc.free.fr !
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
15 nov. 2005 à 20:45
Ba quand tu insère en haut, les autres descendent forcément, vu que tu insères.

/*
coq
MVP Visual C#
*/
0
dysko Messages postés 48 Date d'inscription mercredi 22 juin 2005 Statut Membre Dernière intervention 7 mars 2007
15 nov. 2005 à 21:36
Huuuuummmm....
Si tu le dis alors....
J'essayerais et je te dirais si il y a un problème
Merci

DyskO =>> blackfamilyinc.free.fr !
0
Rejoignez-nous