IT정보공유/C#

[ C# ] 리스트뷰(ListView) 컬럼 클릭 정렬 하는 방법

알지오™ 2016. 12. 20.

C# 기본 컴포넌트인 ListView를 이용하여 컬럼 헤더를 클릭했을 때

컬럼별로 오름차순, 내림차순 정렬을 하는 방법에 대해 알아보도록 하겠습니다.


[ 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하던 정렬이 오름 차순과 내림차순 반복적으로 정렬됩니다.


.



이방식은 문제점이 한가지가 있습니다.

바로 숫자 정렬이 안된다는 건데요.

기본적으로 리스트뷰에서는 문자열 정렬이 사용되고 있기 때문입니다.


숫자 컬럼 까지 완벽하게 정렬하고 싶을 때 사용 하는 코드는 시간관계상 다음에 알아 보도록 하겠습니다.


댓글

💲 추천 글