Сортировка DataGridView с привязанным DataSource
Имею такую ситуацию: есть объект Product и объект MаnagerProduct, который инкапсулирует List<Product>. Далее на форме имею грид, в которому привязан bindingSource, источником которого указан объект Product.
Собственно нужно реализовать возможность сортировать этот самый грид по значениям одного из столбцов, т.е. кликаю я на первый столбец - данные в гриде сортируются по его значениям, кликаю по второму столбцу - сортируются все элементы по данным из второго столбца и т.д.
На сколько я понял из всего прочитанного в сети материала, для этого нужно сначала перегрузить IComparer(что я и сделал в самом классе MаnagerProduct), а затем передавать класс, реализующий этот интерфейс в вызов метода Sort() грида. Но так отсортировать данные в гриде не вышло: генерируется исключение говорящее что мол сортируйте данные на источнике.
Но данные из List<T> открыты только на чтение... Поэтому нужно выполнять сортировку на bindingSource, но метода Sort(), принимающего IComparer там нет...
Первое что лично мне пришло в голову - создать промежуточный List<T>, в который выгрузить bindingSource, после чего сам List<T> отсортировать и снова загрузить в bindingSource, но ведь список может быть весьма большим и время на его загрузку/выгрузку тоже может быть весьма значительным.
Есть ли более изящный вариант решения этой задачи или при таком раскладе мой вариант единственен?