ListView实现点击列排序

摘要:
当我们用ListView显示数据时,有一种很人性化的设计便是单击ListView某一列,该列则以升序或降序排列。

当我们用ListView显示数据时,有一种很人性化的设计便是单击ListView某一列,该列则以升序或降序排列。

自己定义一个类继承自IComparer接口

代码如下:

classListViewSort:IComparer
{
privateintcol;
privatebooldescK;
publicListViewSort()
{
col
=0;
}
publicListViewSort(intcolumn, objectDesc)
{
descK
=(bool)Desc;
col
=column; //当前列,0,1,2...,参数由ListView控件的ColumnClick事件传递 }
publicintCompare(objectx, objecty)
{
inttempInt =String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
if(descK) return-tempInt;
elsereturntempInt;
}
}

在ListView的ColumnClick事件中调用

代码如下

privatevoidlistView1_ColumnClick(objectsender, ColumnClickEventArgs e)
{
if(this.listView1.Columns[e.Column].Tag ==null)
this.listView1.Columns[e.Column].Tag =true;
boolflag =(bool)this.listView1.Columns[e.Column].Tag;
if(flag)
this.listView1.Columns[e.Column].Tag =false;
elsethis.listView1.Columns[e.Column].Tag =true;
this.listView1.ListViewItemSorter =newListViewSort(e.Column, this.listView1.Columns[e.Column].Tag);
this.listView1.Sort();//对列表进行自定义排序 }

最后要说一下,当我们调用ListView的Sort方法时,就会去隐式调用ListViewItemSorter属性对应的类实现的ComPare方法

免责声明:文章转载自《ListView实现点击列排序》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇TXC分布式事务简介bzoj1083 [SCOI2005]繁忙的都市(最小生成树)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ScrollView里面添加ListView时,解决ListView的显示问题

在ScrollView里面添加ListView时,看了很多其他人的讲述,好像ListView只显示一条信息,为此简单新写了一个ListView控件,在布局文件里调用就可以了,代码如下: 1:ScrollViewWithListView.java 1 package com.ghp.view; 2 3 import android.widget.Li...

WPF ListView / ListBox 更新绑定数据源时,自动刷新界面显示

问题现象:ListView 更新绑定数据源时,界面不能自动刷新。 原因及解决方案: 1、ListView 的 ItemSource 使用 BindingList < T >; 注:由于 List < T > 没有实现 INotifyPropertyChanged 接口, 因此若使用 List < T > 作为 ItemS...

CListCtrl使用技巧

以下未经说明,listctrl默认view 风格为report 1. CListCtrl 风格       LVS_ICON: 为每个item显示大图标       LVS_SMALLICON: 为每个item显示小图标       LVS_LIST: 显示一列带有小图标的item       LVS_REPORT: 显示item详细资料       直观的...

WPF: 在ListView中添加Checkbox列表

描述:ListView是WPF中动态绑定工具的数据容器,本文实现了一个在ListView中显示的供用户选择的列表项目,并且控制列表中选择的项目数量,即实现单选。 XAML中创建ListView,代码如下: <ListView x:Name="listView_LineOfBusiness" Width="280" Height="220">...

python数据处理中内存优化的一些tricks

1、读入数据时,pandas默认int类型为int64,未采用最省类型方式读取,可通过以下方式优化内存 1)数值型能用更低内存类型保存就转换为更低内存类型 2) 将object类型转换为category类型 category 类型在底层使用整型数值来表示该列的值,而不使用原值.Pandas用一个字典来构建这些整型数据到原数据的映射关系.当一列只包含有有限...

项目经理打分

02章《深入C#数据类型》项目经理评分   一:创建MyOffices项目,创建UserInfo类,用来存储员工 工号,姓名,年龄,评价,年度得分 二:创建查看评分窗体(frmShow),添加定义员工数组,将员工数据绑定到frmShow窗体的ListView控件上。运行结果如下: 实现思路: 长度为3的UserInfo类型数组,并初始化数组、赋值...