ListView에서 뿌려주는 값 들을 정렬 해주기 위해서
정렬하는 방법을 찾다가 간단한 방법을 찾았다.
Private Sub ListView1_ColumnClick(sender As Object, e As ColumnClickEventArgs) Handles ListView1.ColumnClick
If e.Column = sortColumn Then
' 같은 컬럼이면 방향 뒤집기
sortAscending = Not sortAscending
Else
' 새로운 컬럼이면 오름차순 시작
sortColumn = e.Column
sortAscending = True
End If
ListView1.ListViewItemSorter = New ListViewItemComparer3(e.Column, sortAscending)
ListView1.Sort()
End Sub
(ListViewItemCoparer3은 새로운 클래스를 만든것)
Public Class ListViewItemComparer3
Implements IComparer
Private col As Integer
Private ascending As Boolean
Public Sub New(column As Integer, ascending As Boolean)
Me.col = column
Me.ascending = ascending
End Sub
Public Function Compare(x As Object, y As Object) As Integer Implements IComparer.Compare
Dim itemX As String = CType(x, ListViewItem).SubItems(col).Text
Dim itemY As String = CType(y, ListViewItem).SubItems(col).Text
Dim numX As Double
Dim numY As Double
Dim result As Integer
If Double.TryParse(itemX, numX) AndAlso Double.TryParse(itemY, numY) Then
' 숫자 비교
result = numX.CompareTo(numY)
Else
' 문자열 비교
result = String.Compare(itemX, itemY)
End If
' 오름차순 / 내림차순 처리
If ascending Then
Return result
Else
Return -result
End If
End Function
End Class
위는 새로운 class로 따로 빼주었음
'.net' 카테고리의 다른 글
| VB.NET 기본적인 API 양식 (2) | 2025.07.02 |
|---|---|
| .net에서 유용하게 사용하는것들 정리 (0) | 2025.01.23 |
| .net VB 화면 띄우기 (0) | 2024.12.22 |
| IEnumerable VS IQueryable (0) | 2024.12.22 |
| Ninject 과 Moq (0) | 2024.12.17 |