Forum: VB.NET |
Thema:
Re: ListView nach 2.Spalte sortieren |
Von:
G. Guest (
12.05.2005 23:06) |
Hm... die Frage kann ich wohl aus mangelndem Fachwissen nicht beantworten.
Ich versuch zu erklären, was ich wo eingebaut habe.
In meinem Modul1 steht folgender Code:
Public Class ColumnComparer
Implements IComparer
Private _ColumnIndex As System.Int32
Private _Sorting As System.Windows.Forms.SortOrder
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Dim ix As System.Windows.Forms.ListViewItem
Dim iy As System.Windows.Forms.ListViewItem
ix = DirectCast(x, System.Windows.Forms.ListViewItem)
iy = DirectCast(y, System.Windows.Forms.ListViewItem)
If ix.SubItems.Count > _ColumnIndex And iy.SubItems.Count = 0 Then
Return 1
ElseIf ix.SubItems.Count > _ColumnIndex And iy.SubItems.Count = 0 Then
Return -1
Else
Return System.String.Compare(ix.SubItems(_ColumnIndex).Text, iy.SubItems(_ColumnIndex).Text)
End If
End Function
Public Sub New(ByVal ColumnIndex As System.Int32, ByVal Sorting As System.Windows.Forms.SortOrder)
_ColumnIndex = ColumnIndex
_Sorting = Sorting
End Sub
End Class
Diese Klasse rufe ich dann mit
ListView1.ListViewItemSorter = New ColumnComparer(1, ListView1.Sorting = SortOrder.Ascending)
Leider muss ich das mehrmals aufrufen, und möchte also den Comparer nicht sortieren lassen während dem Bearbeiten der Listen.
An einem anderen Punkt im Programm soll die Sortierung der Liste oder einer anderen dann wieder aktiv werden.
Am liebsten wär mir eine Prozedur, die ich einfach aufrufe, wenn sortiert werden soll.
Danke vielmals für die Hilfe!
mirmi
Betreff |
Von |
Datum |
|
  |
Re: ListView nach 2.Spalte sortieren
Also, ich hab das jetzt so gemacht: (sicher nicht die schönste Lösung, aber es funzt ;))<br><br>Listeneinträge in 1dimensionales Array eintragen. Mit ; als Trennzeichen. Dieses 1dimensionale Array... |
 |
 |
 |
|
|
mirmi
li
|
17.05.2005 18:55 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!