我想根據列對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