我在排序時遇到了一些問題。我有以下的代碼從MSD文件它適用於所有領域,而不是與字符開始喜歡 $例如
amount
$1900
$4444
$39
$0
量字段,以什麼樣的變化,我應該賺那麼這個代碼不排序的列它還會在開始時對具有$符號的金額進行排序。
這是代碼:
class ListViewItemComparer : IComparer {
private int col;
private SortOrder order;
public ListViewItemComparer() {
col=0;
order = SortOrder.Ascending;
}
public ListViewItemComparer(int column, SortOrder order)
{
col=column;
this.order = order;
}
public int Compare(object x, object y)
{
int returnVal= -1;
returnVal = String.Compare(((ListViewItem)x).SubItems[col].Text,
((ListViewItem)y).SubItems[col].Text);
// Determine whether the sort order is descending.
if(order == SortOrder.Descending)
// Invert the value returned by String.Compare.
returnVal *= -1
return returnVal;
}
}
和我打電話列表視圖欄點擊事件代碼
private void lvwUsers_ColumnClick(Object eventSender, ColumnClickEventArgs eventArgs)
{
if (lvwUsers.Sorting == SortOrder.Ascending)
lvwUsers.Sorting = SortOrder.Descending;
else
lvwUsers.Sorting = SortOrder.Ascending;
lvwUsers.Sort();
this.lvwUsers.ListViewItemSorter = new ListViewItemComparer(eventArgs.Column,
lvwUsers.Sorting);
}
它工作正常,但不與他們
有$符號量那麼如何使用$符號對listview的數量列進行排序呢?
你能回答 –
首先,你應該從你的列表中排序之後刪除$,然後將其添加到結果 –
那與ListView的問題:一切都是字符串。問題是「$ 9」的排序會高於「$ 100」,因爲字符「9」大於「1」。 DataGridView將是一個更好的選擇 – Plutonix