C# ListView 정렬
private ListViewColumnSorter lvwColumnSorter;
2 창 구조 함수 아래 코드 추가
// ListView , listView1
lvwColumnSorter = new ListViewColumnSorter();
this.listView1.ListViewItemSorter = lvwColumnSorter;
3. listView1의 ColumnClick 이벤트에 다음 코드를 추가합니다.
// .
if ( e.Column == lvwColumnSorter.SortColumn )
{
// .
if (lvwColumnSorter.Order == SortOrder.Ascending)
{
lvwColumnSorter.Order = SortOrder.Descending;
}
else
{
lvwColumnSorter.Order = SortOrder.Ascending;
}
}
else
{
// ,
lvwColumnSorter.SortColumn = e.Column;
lvwColumnSorter.Order = SortOrder.Ascending;
}
// ListView
this.listView.Sort();
4.listview 정렬에 사용할 클래스 추가
using System.Collections;
using System.Windows.Forms;
/// <summary>
/// IComparer
/// </summary>
public class ListViewColumnSorter : IComparer
{
/// <summary>
///
/// </summary>
private int ColumnToSort;
/// <summary>
///
/// </summary>
private SortOrder OrderOfSort;
/// <summary>
/// CaseInsensitiveComparer ,
/// ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemCollectionsCaseInsensitiveComparerClassTopic.htm
/// </summary>
private CaseInsensitiveComparer ObjectCompare;
/// <summary>
///
/// </summary>
public ListViewColumnSorter()
{
//
ColumnToSort = 0;
//
OrderOfSort = SortOrder.None;
// CaseInsensitiveComparer
ObjectCompare = new CaseInsensitiveComparer();
}
/// <summary>
/// IComparer .
/// </summary>
/// <param name="x"> </param>
/// <param name="y"> </param>
/// <returns> . 0, x y 1, x y -1</returns>
public int Compare(object x, object y)
{
int compareResult;
ListViewItem listviewX, listviewY;
// ListViewItem
listviewX = (ListViewItem)x;
listviewY = (ListViewItem)y;
//
compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text,listviewY.SubItems[ColumnToSort].Text);
//
if (OrderOfSort == SortOrder.Ascending)
{
// ,
return compareResult;
}
else if (OrderOfSort == SortOrder.Descending)
{
// ,
return (-compareResult);
}
else
{
// 0
return 0;
}
}
/// <summary>
/// .
/// </summary>
public int SortColumn
{
set
{
ColumnToSort = value;
}
get
{
return ColumnToSort;
}
}
/// <summary>
/// .
/// </summary>
public SortOrder Order
{
set
{
OrderOfSort = value;
}
get
{
return OrderOfSort;
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Flutter의 ListTile에서 높이를 지정하면 레이아웃이 무너지는 문제현재 업무로 1개월 반 정도 Flutter를 사용하고 있습니다. 아주 좋은 팀으로, 최근에는 Flutter 자체에도 열중해 왔습니다. title, subtitle, leading, trailing 등을 설정하는 것만...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.