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 |