Стоит задача разработать битовый редактор/просмотровщик файлов. Он должен отображать файл как непрерывную последовательность битов. Безо всякой привязки к байтам должна быть поддержка больших файлов. Предусматривается два режима отображения 1) Когда значение бита отображается в виде «1» или «0» 2) Графический когда бит отображается в виде закрашенного или не закрашенного квадрата. Естественно во втором режиме должна быть возможность отображения. Редактирование необходимо в обоих режимах.
Какой контрол посоветуете использовать для реализации такой задачи. Пробовал использовать различные табличные контролы в виртуальном режиме, т.е. когда каждая ячейка в таблице отвечает за отображение своего бита из файла. Но возникает проблема когда отображаешь каждый бит, например, в виде точки размером 1-2 пикселя. То на такой таблице на экране одновременно получается около 1 000 000 ячеек. Стоит чуть чуть подвинуть прокрутку и можно минуту ждать пока экран перерисуется

Как сделать отображение достаточно быстрым? Может эта тема уже где то подымалась и есть готовые классы?
P.S. Извините если вопрос не по теме форума, долго думал куда запостить.