Vb.net 如果列是整数/长,则按值排序;如果列是ListView中的日期列,则按日期排序

Vb.net 如果列是整数/长,则按值排序;如果列是ListView中的日期列,则按日期排序,vb.net,Vb.net,单击列时,我使用以下代码对listview进行排序: Imports System.Collections 导入System.Windows.Forms 公共类ListViewColumnSorter 实现System.Collections.IComparer Private ColumnToSort As Integer Private OrderOfSort As SortOrder Private ObjectCompare As CaseInsensitiveComparer Pu

单击列时,我使用以下代码对listview进行排序:

Imports System.Collections
导入System.Windows.Forms

公共类ListViewColumnSorter 实现System.Collections.IComparer

Private ColumnToSort As Integer
Private OrderOfSort As SortOrder
Private ObjectCompare As CaseInsensitiveComparer

Public Sub New()
    ' Initialize the column to '0'.
    ColumnToSort = 0

    ' Initialize the sort order to 'none'.
    OrderOfSort = SortOrder.None

    ' Initialize the CaseInsensitiveComparer object.
    ObjectCompare = New CaseInsensitiveComparer()
End Sub

Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare
    Dim compareResult As Integer
    Dim listviewX As ListViewItem
    Dim listviewY As ListViewItem

    ' Cast the objects to be compared to ListViewItem objects.
    listviewX = CType(x, ListViewItem)
    listviewY = CType(y, ListViewItem)

    ' Compare the two items.
    compareResult = ObjectCompare.Compare(listviewX.SubItems(ColumnToSort).Text, listviewY.SubItems(ColumnToSort).Text)

    ' Calculate the correct return value based on the object 
    ' comparison.
    If (OrderOfSort = SortOrder.Ascending) Then
        ' Ascending sort is selected, return typical result of 
        ' compare operation.
        Return compareResult
    ElseIf (OrderOfSort = SortOrder.Descending) Then
        ' Descending sort is selected, return negative result of 
        ' compare operation.
        Return (-compareResult)
    Else
        ' Return '0' to indicate that they are equal.
        Return 0
    End If
End Function

Public Property SortColumn() As Integer
    Set(ByVal Value As Integer)
        ColumnToSort = Value
    End Set

    Get
        Return ColumnToSort
    End Get
End Property

Public Property Order() As SortOrder
    Set(ByVal Value As SortOrder)
        OrderOfSort = Value
    End Set

    Get
        Return OrderOfSort
    End Get
End Property
末级

msdn站点位于:

这只是通过文本对列进行排序。我需要一些帮助来修改它,以便在列为整数/长时按值排序,在列为日期列时按日期排序

我可以修改此行:compareResult=ObjectCompare.ComparelistviewX.SubItemsColumntSort.Text、listviewY.SubItemsColumntSort.Text,以通过日期/整数等进行排序,但我必须手动对其进行编码。有没有办法检测我单击的列是否是日期/长度/整数列。。。也许是通过特里帕斯

谢谢