Мне нужно отсортировать DataGridView с естественной сортировкой (как в проводнике), чтобы цифры и текст (в том же столбце) сортировались естественно, а не в алфавитном порядке (так что "место 3" доходит до "места 20" и т.д..). У меня есть DataGridView, где я установил DataView как DataSource. DataView содержит DataTable, который создается с некоторыми значениями из базы данных. Типы столбцов - это строка. У меня есть IComparer, который делает то, что должен, но я не могу понять, как его использовать, потому что я не могу узнать, как выполнить сортировку. Событие DataGridView.SortCompare, которое было бы идеальным, не работает, поскольку оно является привязкой к базе данных. DataView.Sort принимает только строки с именами столбцов и порядками сортировки.
Очень раздражает. Пытался прочитать связанные проблемы здесь, в StackOverflow, и искал много лотов и лотов Google, но я не могу найти много об этом. Только то, что я действительно нахожу, это метод Sort (string) для dataview, который не работает, поскольку он сортируется по алфавиту.
Кто-нибудь знает, как это сделать без особых проблем? Это должны быть другие, чем я, борясь с этим? Я действительно не хочу переопределять все классы datagridview или dataview, просто чтобы получить пользовательскую сортировку...
Обновить. Если кто-то задается вопросом, я все еще ищу хороший ответ на эту проблему. Хотя, в то же время, я создал собственный простой класс таблицы, а затем вручную передал его в datagridview вручную. Переопределение метода SortCompare. Немного раздражает, но не слишком сложно, так как мне нужно показывать значения (без редактирования или что-то еще), и поэтому можно преобразовать все в строки.