按列排序ListView?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (41)

目前我在列表视图上使用自定义排序器,每次单击第一列时我都可以对列表视图进行排序,但不会按其他列排序。

SortStyle:变量以确定它是Ascending Sort还是Descending。

if (e.Column == 0)
{
    if (SortStyle == 0)
    {
        List.ListViewItemSorter = customSortDsc;
        SortStyle = 1;
    }
    else
    {
        List.ListViewItemSorter = customSortAsc;
        SortStyle = 0;
    }
}

这对第一列进行排序时工作正常,但如果要在其他列上进行排序,则只需按第一列进行排序。有没有一种方法可以通过点击列进行排序?

提问于
用户回答回答于
用户回答回答于

重新开始使用下面的代码。它将向你展示如何定义从IComparer接口继承的类。每一行都被注释掉了,所以你可以真正看到发生了什么。唯一可能的复杂情况是您如何从Listview控件中检索Listview项目,你需要做的就是复制和粘贴IComparer接口类和columnClick方法。

http://support.microsoft.com/kb/319401

扫码关注云+社区

领取腾讯云代金券