C # ComboBox в DataGridView загружает источник данных только при нажатии (когда ячейка находится в режиме редактирования) - PullRequest
0 голосов
/ 28 мая 2018

У меня есть DataGridView, который включает в себя ComboBoxColumn.Я должен поместить большой набор данных (около 20000 элементов) в выпадающие списки, чтобы пользователь мог ввести первые несколько цифр, а затем щелкнуть правильное число.

Проблема с большими выпадающими списками состоит в том, чтоони долго загружаются.Теперь, это не будет проблемой с обычными выпадающими списками (ну, это увеличит начальное время загрузки программы);но с помощью комбинированных списков внутри таблицы данных это так: комбинированный список внутри DGV загружается только тогда, когда его ячейка находится в режиме редактирования.Как только я щелкаю из ячейки, выпадающий список «выгружается», т. Е. Если я нажимаю на него снова, мне приходится ждать, пока он загрузится снова.

Есть ли способ обойти это или, возможно, способзагружать эти 20 тыс. записей быстрее?

Я не думаю, что для этого нужен пример кода, поскольку речь идет не о самом коде, а о поведении winforms.

РЕДАКТИРОВАТЬ: Мы решили сделатьэто текстовое поле и просто проверьте, есть ли значение в списке разрешенных элементов или нет

1 Ответ

0 голосов
/ 30 мая 2018

Я думаю, что пока вы используете такое большое количество записей, это всегда будет медленным.Вы можете попробовать загрузить его в оперативную память (например, public List<YourClass> tmpList {get;set;) и соединить ваш Combobox со списком вместо источника привязки.Это уменьшит количество запросов или перезагрузок, если в ваших записях не было обновления.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...