프로그래밍/.NET2012. 10. 25. 10:44

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
Posted by 건깡