ListViewColumnSorter und Groups

05/04/2009 - 09:07 von Karsten Sosna | Report spam
Hallo NG,
habe ein Problem mit dem ListViewColumnSorter im Zusammenhang mit Groups..
Hierzu habe ich das Beispiel aus der MSDN unter
"ListView.ListViewItemSorter-Eigenschaft" genommen. Das Beispiel
funktioniert auch. Nun habe ich das Beispiel so erweitert, das ich eine
ListViewGroup hinzugefügt habe:
\\\
Me.listView1 = New ListView

Dim grp As New ListViewGroup("Test")
listView1.Groups.Add(grp)

Dim listViewItem1 As New ListViewItem(New String() {"Banana", "a", "b",
"c"}, grp)
Dim listViewItem2 As New ListViewItem(New String() {"Cherry", "v", "g",
"t"}, grp)
Dim listViewItem3 As New ListViewItem(New String() {"Apple", "h", "j", "n"},
grp)
Dim listViewItem4 As New ListViewItem(New String() {"Pear", "y", "u", "i"},
grp)
'...
///
Jetzt funktioniert das Sortieren nicht mehr. Der Comparer sieht so aus:
\\\
Class ListViewItemComparer
Implements IComparer

Private col As Integer

Public Sub New()
col = 0
End Sub

Public Sub New(ByVal column As Integer)
col = column
End Sub

Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer
_
Implements IComparer.Compare
Return [String].Compare(CType(x, ListViewItem).SubItems(col).Text,
CType(y, ListViewItem).SubItems(col).Text)
End Function
End Class
///
Wie müsste ich ansetzen, dass die ListViewItems innerhalb der Gruppe(n)
sortiert werden. Im Moment sehe ich keinen Ansatzpunkt. :=(

Danke für jeden Tipp
Gruß Scotty
 

Lesen sie die antworten

#1 Karsten Sosna
05/04/2009 - 10:21 | Warnen spam
habe ein Problem mit dem ListViewColumnSorter im Zusammenhang mit Groups..
Hierzu habe ich das Beispiel aus der MSDN unter
"ListView.ListViewItemSorter-Eigenschaft" genommen. Das Beispiel
funktioniert auch. Nun habe ich das Beispiel so erweitert, das ich eine
ListViewGroup hinzugefügt habe:
...
Jetzt funktioniert das Sortieren nicht mehr.



Habe eine Lösung gefunden, nicht schön, aber sie tut es.
Im ColumnClick-Event wird ja die Sort-Methode aufgerufen. Zuvor muss man die
Groups-Collection leeren. Nach dem Aufruf muss dann die Groups neu erstellen
und der Auflistung hinzufügen und den einzelnen ListViewItems wieder
zuweisen. Werden die Groups nicht neu erstellt funktioniert das Ganze nicht.
Wichtig ist, dass man auf die Reihenfolge der Groups achtet, da diese die
Position der Group innerhalb des ListViews ausmacht.
Gruß Scotty

Ähnliche fragen