我想根据列对C#中的ListView控件进行排序。我已经创建ColumnClickEventHandler:分配比较器到ListViewItemSorter
private void contactsListView_ColumnClick(object sender, ColumnClickEventArgs e)
{
contactsListView.ListViewItemSorter = new ListViewItemComparer(e.Column);
contactsListView.Sort();
}
凡ListViewItemComparer类看起来是这样的:
class ListViewItemComparer : IComparer<ListViewItem>
{
private int col;
public ListViewItemComparer()
{
col = 0;
}
public ListViewItemComparer(int column)
{
col = column;
}
public int Compare(ListViewItem x, ListViewItem y)
{
int returnVal = -1;
returnVal = String.Compare(x.SubItems[col].Text, y.SubItems[col].Text);
return returnVal;
}
}
此代码不能编译的原因contactsListView.ListViewItemSorter是类型的IComparer和类ListViewItemComparer是IComparer的。
有没有一种方法可以明确地将一个转换到另一个?或者只是做另一种排序?
在此先感谢
你是对的。我忘了使用System.Collections(我只是System.Collections.Generic)。这就是为什么当我看到丢失IComparer <>类型时,我只是把它放在:P 感谢和快乐编程:) – kyrisu 2009-04-30 18:03:15