Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB EXPRESS 2010] ListView + colonne in ordine
Forum - C# / VB.NET - [VB EXPRESS 2010] ListView + colonne in ordine

Avatar
Xirol (Normal User)
Newbie


Messaggi: 12
Iscritto: 22/08/2010

Segnala al moderatore
Postato alle 19:32
Sabato, 28/08/2010
Faccio affidamento sulla vostra pazienza:
Ho un ListView con tre colonne che contengono rispettivamente Nomi, numeri e date. Ora vorrei far si che se clicco sul titolo della prima colonna tutto il listview venga messo in ordine rispetto alla prima colonna. Stessa cosa per le altre 2.
Qualcuno mi da un'ispirazione?

PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
1
Down
V
Segnala al moderatore
Postato alle 12:07
Domenica, 29/08/2010
Non serve usare una lista in background. E usando un DataGridView dovrebbe implementare le stesse cose, quindi tanto vale.

Devi usare il metodo Sort di ListView per ordinare gli elementi. Questo metodo, di default, li ordina in base al testo del primo SubItem. Per cambiarne il funzionamento, basta scrivere una classe Comparer che erediti da IComparer e che compari due oggetti di tipo ListViewItem. Dopodiché, è sufficiente modificare la proprietà ListView.ListViewItemSorter assegnandole il nuovo oggetto comparer. Riferimenti:
http://msdn.microsoft.com/en-us/library/system.windows.for ...
http://totemslair.org/guide/viewchapter.php?guida=vb&id=38
Esempio completo da msdn:
http://support.microsoft.com/kb/319401


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
1
Down
V
Segnala al moderatore
Postato alle 13:53
Domenica, 29/08/2010
Ma... cosa c'entra l'array ora? Passare per un altro oggetto oltre al controllo usato è in ogni caso meno efficiente che usare direttamente i metodi e le proprietà del controllo.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1834
Iscritto: 04/05/2008

Up
0
Down
V
Segnala al moderatore
Postato alle 10:38
Domenica, 29/08/2010
Se ho capito bene quello che cerchi di fare,
Hai bisogno di una lista con rispettivo <Nomi,Numeri,Date>

ogni volta che viene inserito un nuovo valore nei campi,
vai a salvarti il risultato nella lista,

Salvato il valore, esegui un refresh, del tipo
listview1.Clear  e dopo inserisci nuovamente con un ciclo i dati ordinati.

per ordinarlo dalla A alla Z ti basta usare la funzione Sort,

Ma a mio parere faresti prima ad usare un DataGrid.


PM
Avatar
Grubby (Ex-Member)
Rookie


Messaggi: 27
Iscritto: 25/08/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 12:43
Domenica, 29/08/2010
Testo quotato

Postato originariamente da Thejuster:

Se ho capito bene quello che cerchi di fare,
Hai bisogno di una lista con rispettivo <Nomi,Numeri,Date>

ogni volta che viene inserito un nuovo valore nei campi,
vai a salvarti il risultato nella lista,

Salvato il valore, esegui un refresh, del tipo
listview1.Clear  e dopo inserisci nuovamente con un ciclo i dati ordinati.

per ordinarlo dalla A alla Z ti basta usare la funzione Sort,

Ma a mio parere faresti prima ad usare un DataGrid.




Quoto Thejuster, faresti meglio a usare un datagrid

Scuasmi totem ma se in un DataGridView clicco sul titolo di una colonna, il suo contenuto non si ordina in ordine alfabetico secondo il codice ascii???

Comunque:

Array.sort(tuo_array)







Io non voglio essere un prodotto del mio ambiente, voglio che il mio ambiente sia un mio prodotto....
PM
Avatar
Xirol (Normal User)
Newbie


Messaggi: 12
Iscritto: 22/08/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 21:40
Giovedì, 02/09/2010
Prima di tutto grazie a tutti.
Viste le vostre risposte credo che l'ordinamento della listview superi la mia capacità di programmatore...perciò lascio stare.
Grazie ancora.

PM
Avatar
Xirol (Normal User)
Newbie


Messaggi: 12
Iscritto: 22/08/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 21:44
Giovedì, 02/09/2010
Prima di tutto grazie a tutti.
Viste le vostre risposte credo che l'ordinamento della listview superi la mia capacità di programmatore...perciò lascio stare.
Grazie ancora.

PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
-1
Down
V
Segnala al moderatore
Postato alle 13:07
Domenica, 29/08/2010
Testo quotato

Postato originariamente da Grubby:
Quoto Thejuster, faresti meglio a usare un datagrid
Scuasmi totem ma se in un DataGridView clicco sul titolo di una colonna, il suo contenuto non si ordina in ordine alfabetico secondo il codice ascii???
Comunque:
Array.sort(tuo_array)



Appunto, l'ordinamento alfabetico non va bene per numeri e date. Anche se è pur sempre possibile impostare il tipo di dato che una colonna contiene. In quel caso, i valori potrebbero essere ordinati correttamente.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM
Avatar
Grubby (Ex-Member)
Rookie


Messaggi: 27
Iscritto: 25/08/2010

Up
-2
Down
V
Segnala al moderatore
Postato alle 13:43
Domenica, 29/08/2010
Testo quotato

Postato originariamente da Il Totem:
Appunto, l'ordinamento alfabetico non va bene per numeri e date. Anche se è pur sempre possibile impostare il tipo di dato che una colonna contiene. In quel caso, i valori potrebbero essere ordinati correttamente.



Penso che si possa costruire una variabile strutturata includendo l'ordinamento desiderato.... o sbaglio?
E poi ordinare l'array secondo la variabile costruita...
Ma non voglio andare contro il sommo totem :hail:
:D

Ultima modifica effettuata da Grubby il 29/08/2010 alle 13:46


Io non voglio essere un prodotto del mio ambiente, voglio che il mio ambiente sia un mio prodotto....
PM