C#中listview实现排序 c listview 排序
【解决方法】:使用IComparer接口。
例子:1.using System;using System.Collections.Generic;using System.Text;using System.Collections;using System.Windows.Forms;namespacesortListView{ classListViewColumnSorter: IComparer{ private int ColumnToSort;//指定按照哪个列排序 private SortOrder OrderOfSort;//指定排序的方式 private CaseInsensitiveComparerObjectCompare;//声明CaseInsensitiveComparer类对象, public ListViewColumnSorter()//构造函数
{ ColumnToSort = 0;//默认按第一列排序 OrderOfSort =SortOrder.None;//排序方式为不排序 ObjectCompare = newCaseInsensitiveComparer();//初始化CaseInsensitiveComparer类对象 } //重写IComparer接口. //<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) {//因为是正序排序,所以直接返回结果 returncompareResult; } else if (OrderOfSort ==SortOrder.Descending) {//如果是反序排序,所以要取负值再返回 return(-compareResult); } else { //如果相等返回0 return 0; } } ///获取或设置按照哪一列排序. public int SortColumn { set { ColumnToSort =value; } get { return ColumnToSort; } } ///获取或设置排序方式. public SortOrder Order { set { OrderOfSort = value; } get { return OrderOfSort; } } }}================================namespace sortListView{ public partial class Form1 : Form { public Form1() { InitializeComponent(); //创建一个ListView排序类的对象,并设置listView1的排序器 lvwColumnSorter = newListViewColumnSorter(); this.listView1.ListViewItemSorter =lvwColumnSorter; } private voidForm1_Load(object sender, EventArgs e) {初始化listview1. } private voidlistView1_ColumnClick(object sender, ColumnClickEventArgse) {//检查点击的列是不是现在的排序列. 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.listView1.Sort(); } private void button1_Click(object sender, EventArgse) { Form2 obj = new Form2(); obj.Show(); } }}
更多阅读
Android中ListView下拉刷新、上拉载入更多示例 listview下拉刷新demo
最关键的语句是新装载使用:mAdapter=newArrayAdapter<String>(XListViewActivity.this,R.layout.list_item,items);mListView.setAdapter(mAdapter);加载更多使用:mAdapter.notifyDataSetChanged();该示例使用的github
在STEP7V5.5中如何实现数值微分?算法 数值微分画线算法
在 STEP 7 V5.5 中如何实现数值微分?【算法】描述在数学中,微分是一个函数变化率的处理。不过在实践中,通常没有数学值,而 (举例来说)只有一个随时间变化的值。这个基于 STEP 7 Basic V5.5的程序根据当前值和前一函数值(一阶导数)计算
ExtJS中FormPanel实现数据加载和提交 extjs3 formpanel
在使用使用FormPanel时我们通常需要使用它的form对象来加载数据或提交数据。FormPanel中的 form对象为Ext.form.BasicForm类型的对象,它有load和submit方法分别用于加载数据和提交数据。而这两个方法都是通过调用 Ext.form.BasicForm
C ++ 中对象或其对象指针的赋值 c语言指针赋值
C++中对象或其对象指针的赋值C++中成员函数的动态绑定:C++中要实现函数的动态绑定,必须在其基类中将函数声明为virtual且在子类中对函数加以实现。然后用一个基类指针指向某一个子类对象,这样才会在函数调用时实现动态绑定。在C++中,只
遗传算法的VB实现代码 中 matlab实现遗传算法
************************************ 随机全局取样选择 **********************************''过 程 名: Stochastic_Universal_Sampleing'参 数: BinGroup - 染色体数据' Result - 染色体的适应度数据' N - 联赛规模,没有考虑到代沟