Виртуальный режим .NET ListView: генерируйте изображения по мере необходимости - PullRequest
0 голосов
/ 31 января 2019

Добрый день всем!У меня есть элемент управления ListView, в котором я установил для свойства VirtualMode значение True, и я обрабатываю событие RetrieveVirtualItem для динамического генерирования ListViewItem с, как требуется.

У меня естьImageList, содержащий миниатюры / изображения / значки для каждого элемента.Однако, поскольку длина моих исходных данных очень велика, ImageList также имеет тенденцию содержать много Image с, и в какой-то момент невозможно добавить все изображения, которые будут использоваться для ListViewItem с.Следующее исключение выдается, когда я перебираю свои исходные данные, чтобы создать изображение для каждого элемента:

InvalidOperationException:
Image cannot be added to the ImageList

Мой вопрос такой: Есть ли способ создавать / генерировать изображения, когда это требуется? Я думаю о загрузке ImageList только необходимыми изображениями, но я застрял в том факте, что мы не можем точно знать, какие элементы в данный момент отображаются на экране.

Практическое примечание:генерация изображения не является трудоемкой задачей (включает только заполнение Bitmap с использованием Graphics), так что это не проблема.

Любая помощь или понимание будут высоко оценены.Спасибо!Пожалуйста, дайте мне знать, если вам понадобятся примеры кода или другая информация.

Информация о среде

  • IDE: Visual Studio 2010
  • Язык: VB .NET
  • .NET Версия: 4.0
...