1. 정렬 클래스
ListView하고 같은 NameSpace 안에 정의해줍니다.
using System.Collections;class ListviewItemComparer : IComparer { private int col; public string sort = "asc"; public ListviewItemComparer() { col = 0; } public ListviewItemComparer(int column, string sort) { col = column; this.sort = sort; } public int Compare(object x, object y) { if (sort == "asc") { return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text); } else { return String.Compare(((ListViewItem)y).SubItems[col].Text, ((ListViewItem)x).SubItems[col].Text); } } }
2. ListView ColumnClick 이벤트 생성
private void ListView_MemoList_ColumnClick(object sender, ColumnClickEventArgs e) { if (e.Column == 0) { return; } ListView_MemoList.Columns[e.Column].Text = ListView_MemoList.Columns[e.Column].Text.Replace(" ▼", ""); ListView_MemoList.Columns[e.Column].Text = ListView_MemoList.Columns[e.Column].Text.Replace(" ▲", ""); if (this.ListView_MemoList.Sorting == SortOrder.Ascending || ListView_MemoList.Sorting == SortOrder.None) { this.ListView_MemoList.ListViewItemSorter = new ListviewItemComparer(e.Column, "desc"); ListView_MemoList.Sorting = SortOrder.Descending; ListView_MemoList.Columns[e.Column].Text = ListView_MemoList.Columns[e.Column].Text + " ▼"; } else { this.ListView_MemoList.ListViewItemSorter = new ListviewItemComparer(e.Column, "asc"); ListView_MemoList.Sorting = SortOrder.Ascending; ListView_MemoList.Columns[e.Column].Text = ListView_MemoList.Columns[e.Column].Text + " ▲"; } ListView_MemoList.Sort(); }
적용 결과
'프로그래밍 > .NET' 카테고리의 다른 글
ToolStriptButton Image Size(이미지 사이즈) 원본 크기로 들고오기 (0) | 2012.12.21 |
---|---|
Monitor Class (0) | 2012.10.29 |
WCF 배포하기(IIS) (0) | 2012.10.18 |
WCF 맛보기 (0) | 2012.10.17 |
현재 날짜, 시간 얻어오기(Stirng 반환) (0) | 2012.10.15 |