Сортировка ячеек DataGridView программным способом - PullRequest
0 голосов
/ 30 апреля 2011

У меня есть сетевое представление данных с именем DGV, и я пытаюсь использовать функцию сортировки для сортировки первой ячейки программным способом, используя:

DGV.Sort(Rang, System.ComponentModel.ListSortDirection.Descending);

, но на выходе я получаю следующее:

1, 10, 100, 11, 12, ..., 19, 2, 20, 21, ...

Я уже установил для ячейки SortMode of Rang значение Programmatic, но я всегдаэто вывод.

В чем проблема?!

Спасибо.

1 Ответ

2 голосов
/ 30 апреля 2011

По-видимому, сортировка основана на значении 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 );
    }
...