C# 기본 컴포넌트인 ListView를 이용하여 컬럼 헤더를 클릭했을 때
컬럼별로 오름차순, 내림차순 정렬을 하는 방법에 대해 알아보도록 하겠습니다.
우선 리스트뷰 콤포넌트를 폼 위에 올렸다면
리스트뷰의 ColumnClick 이벤트에 이벤트 핸들러를 등록해 줍니다.
정의된 이벤트 헨들러에 컬럼 헤더 클릭에 대한 정렬을 위한 소스코드 샘플입니다.
private void lvUp_ColumnClick(object sender, ColumnClickEventArgs e) { if (lvUp.Sorting == SortOrder.Ascending) lvUp.Sorting = SortOrder.Descending; else lvUp.Sorting = SortOrder.Ascending; lvUp.ListViewItemSorter = new ListViewItemComparer(e.Column, lvUp.Sorting); } }
ListView의 어떤 Column Header를 Click하던 정렬이 오름 차순과 내림차순 반복적으로 정렬됩니다.
.
이방식은 문제점이 한가지가 있습니다.
바로 숫자 정렬이 안된다는 건데요.
기본적으로 리스트뷰에서는 문자열 정렬이 사용되고 있기 때문입니다.
숫자 컬럼 까지 완벽하게 정렬하고 싶을 때 사용 하는 코드는 시간관계상 다음에 알아 보도록 하겠습니다.
댓글