我有一个名为DGV的datagridview,我正在尝试使用sort函数以编程方式对第一个单元格进行排序:
DGV.Sort(Rang, System.ComponentModel.ListSortDirection.Descending);
但是在输出上我有这个:
1,10,100,11,12,...,19,2,20,21,......
我已经将Rang单元格的SortMode设置为Programmatic,但我总是输出这个。
有什么问题? !
感谢。
答案 0 :(得分:2)
似乎是基于 place 值进行排序,这是string
数据类型的排序方式。您需要确保排序的列是int
。
编辑:
如果您要尝试解析字符串值,我建议使用TryParse( )
方法。以下是Comparer 可能的示例:
int Compare ( object obj1, object obj2 )
{
IComparer _comparer = Comparer.Default;
int val1, val2;
if (!Int32.TryParse ( obj1.ToString ( ), out val1 ))
return -1;
if (!Int32.TryParse ( obj2.ToString ( ), out val2 ))
return -1;
return _comparer.Compare ( val1, val2 );
}