TLDR; У меня есть решение в две строки.
Мне нужно было сделать то же самое, но, изучив все эти сложные способы сделать это, включив отдельный .dll или написав свой собственный класс / методы, я понял, что должен быть более простой способ. Оказывается, я был прав, потому что я понял, как этого добиться, используя только две строки кода. Это сработало для меня.
К счастью, для нас оказалось, что метод .NET Framework Sort () помогает нам в этом. Идея состоит в том, что вы хотите отсортировать столбцы по отдельности, но порядок, в котором вы сортируете их, - это то, что даст желаемый результат.
Так, например, у меня есть столбец для типа файла и столбец для имени файла. Всякий раз, когда я хочу отсортировать данные по типам, я хочу убедиться, что имена также сортируются в каждом показанном типе.
ЦЕЛЬ: Сортировка по типу также сортирует имена файлов по алфавиту.
Данные:
zxcv.css
testimg3.jpg
asdf.html
testimg2.jpg
testimg1.jpg
Сортировка данных по имени:
mConflictsDataGridView.Sort(mConflictsDataGridView.Columns[mNameLabel.Index], ListSortDirection.Ascending);
asdf.html
testimg1.jpg
testimg2.jpg
testimg3.jpg
zxcv.css
Как вы можете видеть, это будет означать, что имена будут отсортированы соответствующим образом, так что, когда я теперь сортирую по типам файлов, оба требования будут удовлетворены.
Сортировка данных по типу файла:
mConflictsDataGridView.Sort(mConflictsDataGridView.Columns[mFileExtensionLabel.Index], ListSortDirection.Ascending);
zxcv.css
asdf.html
testimg1.jpg
testimg2.jpg
testimg3.jpg
Вуаля! Сортировано!
РЕШЕНИЕ: В вашем случае вы можете попробовать что-то вроде следующего, и вам может понадобиться настроить его еще раз, чтобы он соответствовал вашему собственному коду.
DataGridView1.Sort(DataGridView1.Columns["status"], ListSortDirection.Ascending);
DataGridView1.Sort(DataGridView1.Columns["day"], ListSortDirection.Asscending);
Это должно быть в состоянии отображать ваши результаты по дням с сортировкой поля статуса.