我希望能够在WPF中显示较大的文本文件-最好作为FlowDocument显示(以设计其外观样式),但无需将整个文件读入内存中。
我的想法是实现某种虚拟化文档=行列表,但是一次只能在内存中存储一组有限的行。例如,如果文件有1,000,000行,则该集合最初只会将行1-1000加载到内存中,而当请求超出行数时,该行将加载另外100行,同时删除前100行,等等。这必须能够进行双向,因此在向后导航时,集合将需要重新读取前100行,同时从内存中删除后100行。 此外,该集合将需要正确反映行的总数-理想情况是在行前,或者在行进通过文件时。 (请注意:集合大小1000和“页面”大小100只是示例)。
在没有控件本身存储所有行的情况下,如何在WPF控件中显示该控件?我相信带有虚拟化StackPanel的ItemsControl也许可以通过某种方式做到这一点,但可能会受到一定限制。可以自定义FlowDocumentScrollViewer以支持此功能吗?