У меня есть данные, которые нужно отсортировать, нажимая на заголовки таблицы данных, все работает правильно, пока я не хочу отсортировать данные времени в форме 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();
}```