同时对两列进行排列 listview
//初始化里面s
ListViewColumnSorter lic1 = new ListViewColumnSorter();
lic1.SortColumn = 2;
this.listView1.ListViewItemSorter = lic1;
//listView1.Sort();
public class ListViewColumnSorter : IComparer
{
private int ColumnToSort;
private SortOrder OrderOfSort;
private readonly CaseInsensitiveComparer ObjectCompare;
public ListViewColumnSorter()
{
ColumnToSort = 0;
OrderOfSort = SortOrder.Descending;
ObjectCompare = new CaseInsensitiveComparer();
}
public int Compare(object x, object y)
{
ListViewItem listviewX = (ListViewItem)x;
ListViewItem listviewY = (ListViewItem)y;
int compareResult = ObjectCompare.Compare(Convert.ToDouble(listviewX.SubItems[ColumnToSort].Text),
Convert.ToDouble(listviewY.SubItems[ColumnToSort].Text));
if (compareResult == 0)
{
compareResult = -ObjectCompare.Compare(Convert.ToDouble(listviewX.SubItems[ColumnToSort+1].Text),
Convert.ToDouble(listviewY.SubItems[ColumnToSort+1].Text));
}
if (OrderOfSort == SortOrder.Ascending)
return (-compareResult);
if (OrderOfSort == SortOrder.Descending)
return compareResult;
return 0;
}
public int SortColumn
{
get { return ColumnToSort; }
set { ColumnToSort = value; }
}
public SortOrder Order
{
get { return OrderOfSort; }
set { OrderOfSort = value; }
}
}
浙公网安备 33010602011771号