ListView: How to sort numbers?
The following code is working fine, but when it's storing numbers...
VB Code:
Friend Class Form1
Inherits System.Windows.Forms.Form
Private Sub ListView1_ColumnClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles ListView1.ColumnClick
If e.Column <> sortColumn Then
sortColumn = e.Column
ListView1.Sorting = SortOrder.Ascending
Else
If ListView1.Sorting = SortOrder.Ascending Then
ListView1.Sorting = SortOrder.Descending
Else
ListView1.Sorting = SortOrder.Ascending
End If
End If
ListView1.Sort()
ListView1.ListViewItemSorter = New Comparer(e.Column, ListView1.Sorting)
End Sub
End Class
Friend Class Comparer
Implements IComparer
Private Col As Integer
Private Order As SortOrder
Public Sub New()
Col = 0
Order = SortOrder.Ascending
End Sub
Public Sub New(ByVal column As Integer, ByVal order As SortOrder)
Col = column
Me.Order = order
End Sub
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Dim returnVal As Integer = -1
returnVal = String.Compare(CType(x, ListViewItem).SubItems(Col).Text, CType(y, ListViewItem).SubItems(Col).Text)
If Order = SortOrder.Descending Then returnVal *= -1
Return returnVal
End Function
End Class
For example it returns:
1
10
2
20
Instead of:
1
2
10
20
How to fix it?
Thanks.