Не может сказать ничто приблизительно 1,2, или 3. но ресурс, который я использую для GBA, программирующего также, имеет информацию DS:
http://nocash.emubase.de/gbatek.htm (и это - в глубине души технический документ спецификации, но мне нравится он за тот)
Также: http://www.devkitpro.org/ для компиляторов и материала.
Один из вариантов - взглянуть на серию статей Беа Столлниц по улучшению производительности TreeView: Часть 1 , Часть 2 и Часть 3 . Хотя то, что она делает, больше ориентировано на TreeView, которые не имеют никакой виртуализации, потому что они группируются по умолчанию, извлеченные уроки определенно могут быть применены к настраиваемому ListView, который имеет группы виртуализации. Фактически, в части 3 она использует ListBox в качестве основы для создания дерева виртуализации, которое также является хорошим началом для виртуализированной группировки. Очевидно, что отображение элементов, как в TreeView, имеет некоторые отличия, такие как выбор групповых узлов из ListView с группировкой, но это можно исправить, перехватив SelectionChanged.
Я нашел образец в Образец кода MSDN для группирования и виртуализации , который преобразует сгруппированный ListView в плоский список, поддерживающий виртуализацию. Однако я не могу понять, как имитировать расширяющиеся действия заголовков.