您好,登錄后才能下訂單哦!
在.NET中,ListView控件提供了一個(gè)內(nèi)置的排序功能。要實(shí)現(xiàn)ListView控件的排序功能,你需要完成以下幾個(gè)步驟:
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)
{
// 獲取當(dāng)前列的索引
int columnIndex = e.Column;
// 獲取當(dāng)前列的排序順序
SortOrder sortOrder = SortOrder.Ascending;
if (listView.Columns[columnIndex].Tag != null && (SortOrder)listView.Columns[columnIndex].Tag == SortOrder.Ascending)
{
sortOrder = SortOrder.Descending;
}
// 設(shè)置當(dāng)前列的排序順序
listView.Columns[columnIndex].Tag = sortOrder;
// 使用ListViewItemComparer對(duì)列表項(xiàng)進(jìn)行排序
listView.ListViewItemSorter = new ListViewItemComparer(columnIndex, sortOrder);
listView.Sort();
}
View
屬性為Details
,并且已經(jīng)添加了列。同時(shí),為L(zhǎng)istView控件的ColumnClick
事件添加上面創(chuàng)建的事件處理程序。listView.View = View.Details;
listView.Columns.Add("Column1");
listView.Columns.Add("Column2");
listView.ColumnClick += listView_ColumnClick;
現(xiàn)在,當(dāng)用戶點(diǎn)擊ListView控件的列標(biāo)題時(shí),列表項(xiàng)將根據(jù)所選列的值進(jìn)行排序。每次點(diǎn)擊相同的列標(biāo)題時(shí),排序順序?qū)⒃谏蚝徒敌蛑g切換。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。