Hallo!
Hab iwie das ganze Netz schon durchsucht, finde aber immer nur String-Basierte sortieralgos..und keins berücksichtigt die vermeindlichen Vorzeichen von Double-Werten!
Hat vllt jemand ne Quelle für eine Sortier-Implementierung für Listviews die Vorzeichen wie plus und minus berücksichtigen?!?
Das ist das was ich gefunden habe:
Spoiler anzeigen
Im DataGridView klappt die Sortierung wunderbar!
Hab iwie das ganze Netz schon durchsucht, finde aber immer nur String-Basierte sortieralgos..und keins berücksichtigt die vermeindlichen Vorzeichen von Double-Werten!
Hat vllt jemand ne Quelle für eine Sortier-Implementierung für Listviews die Vorzeichen wie plus und minus berücksichtigen?!?
Das ist das was ich gefunden habe:
VB.NET-Quellcode
- Dim blnAscending As Boolean = True
- Private Sub lvBTC_ColumnClick(sender As Object, e As ColumnClickEventArgs) Handles lvBTC.ColumnClick
- Dim _listView As ListView = DirectCast(sender, ListView)
- _listView.ListViewItemSorter = New ListViewItemComparer(e.Column, blnAscending)
- blnAscending = Not blnAscending
- End Sub
- ' Implements the manual sorting of items by columns.
- Class ListViewItemComparer
- Implements IComparer
- Private col As Integer
- Private AscOrder As Boolean
- Public Sub New()
- col = 0
- AscOrder = True
- End Sub
- Public Sub New(ByVal column As Integer, ByVal Ascending As Boolean)
- col = column
- AscOrder = Ascending
- End Sub
- Dim _stringX As String = Nothing
- Dim _stringY As String = Nothing
- Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare
- If AscOrder Then
- _stringX = CType(x, ListViewItem).SubItems(col).Text
- _stringY = CType(y, ListViewItem).SubItems(col).Text
- Return [String].Compare(_stringX, _stringY)
- Else
- _stringX = CType(x, ListViewItem).SubItems(col).Text
- _stringY = CType(y, ListViewItem).SubItems(col).Text
- Return [String].Compare(_stringY, _stringX)
- End If
- End Function
- End Class
Im DataGridView klappt die Sortierung wunderbar!
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Morrison“ ()