您好,登錄后才能下訂單哦!
在.NET中,ListView控件提供了一個內置的排序功能。要實現ListView控件的排序功能,你需要完成以下幾個步驟:
public class ListViewItemComparer : IComparer
{
private int _columnIndex;
private SortOrder _sortOrder;
public ListViewItemComparer(int columnIndex, SortOrder sortOrder)
{
_columnIndex = columnIndex;
_sortOrder = sortOrder;
}
public int Compare(object x, object y)
{
ListViewItem itemX = (ListViewItem)x;
ListViewItem itemY = (ListViewItem)y;
int result = String.Compare(itemX.SubItems[_columnIndex].Text, itemY.SubItems[_columnIndex].Text);
if (_sortOrder == SortOrder.Descending)
return -result;
else
return result;
}
}
private void listView_ColumnClick(object sender, ColumnClickEventArgs e)
{
// 獲取當前列的索引
int columnIndex = e.Column;
// 獲取當前列的排序順序
SortOrder sortOrder = SortOrder.Ascending;
if (listView.Columns[columnIndex].Tag != null && (SortOrder)listView.Columns[columnIndex].Tag == SortOrder.Ascending)
{
sortOrder = SortOrder.Descending;
}
// 設置當前列的排序順序
listView.Columns[columnIndex].Tag = sortOrder;
// 使用ListViewItemComparer對列表項進行排序
listView.ListViewItemSorter = new ListViewItemComparer(columnIndex, sortOrder);
listView.Sort();
}
View
屬性為Details
,并且已經添加了列。同時,為ListView控件的ColumnClick
事件添加上面創建的事件處理程序。listView.View = View.Details;
listView.Columns.Add("Column1");
listView.Columns.Add("Column2");
listView.ColumnClick += listView_ColumnClick;
現在,當用戶點擊ListView控件的列標題時,列表項將根據所選列的值進行排序。每次點擊相同的列標題時,排序順序將在升序和降序之間切換。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。