Если он соответствует вашей модели, рассмотрите возможность замены его реализацией сгруппированного списка.
Я бы посоветовал вам попробовать этот проект с открытым исходным кодом под названием ObjectListView (Примечание: я его не писал - я просто счастливый пользователь).
Он предлагает гибкий набор реализаций списков, а также реализацию списка деревьев, если вам все еще нужна многоуровневая иерархия (см. Ниже).
Вы можете связать с ним все, что угодно, и / или использовать привязку данных.
Если у вас есть массивные данные для отображения, вы можете использовать одну из его виртуализированных реализаций.
Попробуй.