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