Public Class RowComparer
Implements System.Collections.IComparer '对DataGridView进行多列排序类
Private sortOrderModifier As Integer = 1
Public Sub New(ByVal sortOrder As SortOrder)
If sortOrder = sortOrder.Descending Then
sortOrderModifier = -1
ElseIf sortOrder = sortOrder.Ascending Then
sortOrderModifier = 1
End If
End Sub
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Dim DataGridViewRow1 As DataGridViewRow = CType(x, DataGridViewRow)
Dim DataGridViewRow2 As DataGridViewRow = CType(y, DataGridViewRow)
' Try to sort based on the First column. 这里Cell是需要优先排序的列
Dim CompareResult As Integer = System.String.Compare(DataGridViewRow1.Cells(0).Value.ToString(), DataGridViewRow2.Cells(0).Value.ToString())
' If the First Column are equal, sort based on the Ninth Name.
If CompareResult = 0 Then
CompareResult = System.String.Compare(DataGridViewRow1.Cells(9).Value.ToString(), DataGridViewRow2.Cells(9).Value.ToString())
End If
Return CompareResult * sortOrderModifier
End Function
End Class
Implements System.Collections.IComparer '对DataGridView进行多列排序类
Private sortOrderModifier As Integer = 1
Public Sub New(ByVal sortOrder As SortOrder)
If sortOrder = sortOrder.Descending Then
sortOrderModifier = -1
ElseIf sortOrder = sortOrder.Ascending Then
sortOrderModifier = 1
End If
End Sub
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Dim DataGridViewRow1 As DataGridViewRow = CType(x, DataGridViewRow)
Dim DataGridViewRow2 As DataGridViewRow = CType(y, DataGridViewRow)
' Try to sort based on the First column. 这里Cell是需要优先排序的列
Dim CompareResult As Integer = System.String.Compare(DataGridViewRow1.Cells(0).Value.ToString(), DataGridViewRow2.Cells(0).Value.ToString())
' If the First Column are equal, sort based on the Ninth Name.
If CompareResult = 0 Then
CompareResult = System.String.Compare(DataGridViewRow1.Cells(9).Value.ToString(), DataGridViewRow2.Cells(9).Value.ToString())
End If
Return CompareResult * sortOrderModifier
End Function
End Class