Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сортировка DataGridView с привязанным DataSource

8.9K
11 июня 2011 года
Apach47
130 / / 14.06.2010
Доброго времени суток.

Имею такую ситуацию: есть объект Product и объект MаnagerProduct, который инкапсулирует List<Product>. Далее на форме имею грид, в которому привязан bindingSource, источником которого указан объект Product.

Собственно нужно реализовать возможность сортировать этот самый грид по значениям одного из столбцов, т.е. кликаю я на первый столбец - данные в гриде сортируются по его значениям, кликаю по второму столбцу - сортируются все элементы по данным из второго столбца и т.д.

На сколько я понял из всего прочитанного в сети материала, для этого нужно сначала перегрузить IComparer(что я и сделал в самом классе MаnagerProduct), а затем передавать класс, реализующий этот интерфейс в вызов метода Sort() грида. Но так отсортировать данные в гриде не вышло: генерируется исключение говорящее что мол сортируйте данные на источнике.

Но данные из List<T> открыты только на чтение... Поэтому нужно выполнять сортировку на bindingSource, но метода Sort(), принимающего IComparer там нет...

Первое что лично мне пришло в голову - создать промежуточный List<T>, в который выгрузить bindingSource, после чего сам List<T> отсортировать и снова загрузить в bindingSource, но ведь список может быть весьма большим и время на его загрузку/выгрузку тоже может быть весьма значительным.

Есть ли более изящный вариант решения этой задачи или при таком раскладе мой вариант единственен?

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог