Данные времени сортировки, которые содержат дни, часы, минуты и секунды в сетке данных C# - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть данные, которые нужно отсортировать, нажимая на заголовки таблицы данных, все работает правильно, пока я не хочу отсортировать данные времени в форме 0: 00 , что означает 0 минут и 0 секунд до на 7-00: 00: 00 , что означает 7 дней 0 часов 0 минут 0 секунд (все хранится в строках).

В настоящее время я использую этот код для сортировки, которая происходит из [ Как включить сортировку DataGridView, когда пользователь щелкает заголовок столбца?

Этот код не работает должным образом, например, при сортировке по возрастанию получает 17: 25:43 до 2:06:38, 1-02: 35: 22 до 17: 25: 43

Кто-нибудь знает, как я могу правильно отсортировать его, щелкнув заголовок представления данных?

private bool _sortDirection;

private void gridView_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
    if (e.ColumnIndex == _previousIndex)
        _sortDirection ^= true; // toggle direction

    gridView.DataSource = SortData(
        (List<MainGridViewModel>)gridReview.DataSource, gridReview.Columns[e.ColumnIndex].Name, _sortDirection);

    _previousIndex = e.ColumnIndex;
}

public List<MainGridViewModel> SortData(List<MainGridViewModel> list, string column, bool ascending)
{
    return ascending ? 
        list.OrderBy(_ => _.GetType().GetProperty(column).GetValue(_)).ToList() :
        list.OrderByDescending(_ => _.GetType().GetProperty(column).GetValue(_)).ToList();
}```

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