.net compact framework 不支援 listview 的 sort 方法,但您仍可以通過 icomparer 介面對項進行排序,並使用 arraylist 的 sort 方法。
下表定義了三個類。
colheader:
此類派生自 columnheader 類,用於向 listview 控制項新增列並對已單擊的列進行排序。它包含指定排序方向的 ascending 屬性:true 表示公升序,false 表示降序。
單擊某列時,將為每個 listitem 建立此類的乙個例項,並將這些例項新增到 arraylist。每個包裝項均包含乙個屬性,其中含有已單擊列的索引。
此類包含 sortcomparer 類。
sortcomparer:
columnclick 事件的事件處理程式按照下面的過程執行排序操作:
注意,arraylist 中的 sort 方法執行的是不穩定的排序,也就是說,如果兩個元素相等,它們的順序可能不會保持不變。相反,穩定排序則會保持相等元素的順序。
// text property for getting the text of an item.
public string text
}// implementation of the icomparer
// inte***ce for sorting arraylist items.
public class sortcomparer : icomparer
string xtext = xitem.sortitem.subitems[xitem.sortcolumn].text;
string ytext = yitem.sortitem.subitems[yitem.sortcolumn].text;
return xtext.compareto(ytext) * (this.ascending ? 1 : -1);}}
}2、將 colheader 類新增到專案中。
// the colheader class is a columnheader object with an
// added property for determining an ascending or descending sort.
// true specifies an ascending order, false specifies a descending order.
public class colheader : columnheader
}3、使用 colheader 類新增列,然後新增 listview 項。
this.listview1.view = view.details;
// add columns using the colheader class. the fourth
// parameter specifies true for an ascending sort order.
listview1.columns.add(new colheader("name", 110, horizontalalignment.left, true));
listview1.columns.add(new colheader("region", 50, horizontalalignment.left, true));
listview1.columns.add(new colheader("sales", 70, horizontalalignment.left, true));
// add the data.
listview1.items.add(new listviewitem(new string ));
listview1.items.add(new listviewitem(new string ));
listview1.items.add(new listviewitem(new string ));
listview1.items.add(new listviewitem(new string ));
listview1.items.add(new listviewitem(new string ));
listview1.items.add(new listviewitem(new string ));
listview1.items.add(new listviewitem(new string ));
listview1.items.add(new listviewitem(new string ));
// connect the listview.columnclick event to the columnclick event handler.
this.listview1.columnclick += new columnclickeventhandler(listview1_columnclick);
4、新增**以執行排序
private void listview1_columnclick(object sender, columnclickeventargs e)
如何對ListView的項進行排序
當您使用資源瀏覽器檢視檔案時,您可以隨心所欲的按名稱 大小 型別及修改日期不同的列對檔案進行大小排序。net提供的listview元件沒有直接提供這種功能,但要實現並不難。listview.sort 方法的功能是 對列表檢視的項進行排序 可當您呼叫它時卻什麼也沒有發生,原因是您沒有為listview...
怎樣對ListView的項進行排序
當您使用資源瀏覽器檢視檔案時,您能夠隨心所欲的按名稱 大小 型別及改動日期不同的列對檔案進行大小排序。net提供的listview元件沒有直接提供這樣的功能,但要實現並不難。listview.sort 方法的功能是 對列表檢視的項進行排序 可當您呼叫它時卻什麼也沒有發生,原因是您沒有為listvie...
怎樣對ListView的項進行排序
當您使用資源瀏覽器檢視檔案時,您能夠隨心所欲的按名稱 大小 型別及改動日期不同的列對檔案進行大小排序。net提供的listview元件沒有直接提供這樣的功能,但要實現並不難。listview.sort 方法的功能是 對列表檢視的項進行排序 可當您呼叫它時卻什麼也沒有發生,原因是您沒有為listvie...