Направление сортировки столбца DataGridView всегда asc - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь отсортировать сетку данных по итоговой строке, которая является источником данных из таблицы данных.Я пытаюсь добиться того, чтобы исключить итоговую строку из сортировки каждый раз, когда пользователь щелкает столбец таблицы данных.Я использую DataGridViewCellMouseEventArgs для захвата этого события.Вот мой код:

    private void dgv_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
    {  
        DataGridView dgv = sender as DataGridView;
        var columnSortDirection = string.Empty;
        var columnName = dgv.SortedColumn.DataPropertyName;

        if (dgv.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection == SortOrder.Descending)
        {
            columnSortDirection = "DESC";
        }
        else
        {
            columnSortDirection = "ASC";
        }

        //remove total row before sort
        var lastRow = dt.Rows[dt.Rows.Count - 1];
        dt.Rows.Remove(lastRow);

        //sort datatable
        DataView dv = dt.DefaultView;
        dv.Sort = string.Format("{0} {1}", columnName, columnSortDirection);
        DataTable sortedDt = dv.ToTable();

        //reinserting total row after dt is sorted
        InsertTotalRow(sortedDt); 
        dgv.DataSource = sortedDt;
    }

Код работает только по возрастанию, но не по другому.По любой причине он никогда не изменит направление на нисходящее, когда пользователь снова щелкнет по столбцу.Что я тут не так делаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...