Я хотел бы иметь возможность отображать большой текстовый файл в WPF - предпочтительно в виде FlowDocument (для стилизации его внешнего вида), но без чтения всего файла в память.
Моя идея состояла бы в том, чтобы реализовать какой-то виртуализированный документ = список строк, который, однако, одновременно содержит ограниченный набор строк в памяти. Например, если файл имеет 1 000 000 строк, коллекция первоначально будет загружать в память только строки 1-1000, а когда будет запрошено количество строк, которые будут загружены еще 100 строк при отбрасывании первых 100 и т. Д. в обоих направлениях, поэтому при переходе назад коллекция должна будет перечитать первые 100 строк, удаляя последние 100 строк из памяти.
Кроме того, коллекция должна корректно отражать общее количество строк - в идеале заранее, или, по мере прохождения через файл.
(примечание: размер коллекции 1000 и размер страницы 100 являются лишь примерами).
Как это можно отобразить в элементе управления WPF, если сам элемент управления не хранит все строки? Я полагаю, что ItemsControl с виртуализированной StackPanel может каким-то образом это сделать, но он может быть несколько ограничен. Может ли FlowDocumentScrollViewer быть настроен для поддержки этого?