我读了这个链接:
http://www.codeproject.com/Articles/34405/WPF-Data-Virtualization
使用Data Virtualization读取文本文件:
在DemoCustomerProvider.cs中,我改变了:
for( int i=startIndex; i<startIndex+count; i++ )
{
Customer customer = new Customer { Id = i + 1, Name = "Customer" + (i+1) };
list.Add(customer);
}
到:
for( int i=startIndex; i<startIndex+count; i++ )
{
using (StreamReader str = new StreamReader("C:\\test.txt"))
{
while (str.ReadLine() != null)
{
string data=str.ReadLine();
Customer customer = new Customer { Id = i + 1, Name =data }
list.Add(customer);
}
}
}
文本大小为2 mb但是在启动Data Virtualization时,它使用3 gig的内存!
我想知道如何使用Data Virtualization来读取文本文件?
答案 0 :(得分:0)
由于您正在阅读整个文本文件,因此您正在破坏数据虚拟化的目的,即只延迟加载数据的可见部分。要实现此目的,您需要一个具有固定记录大小的数据库或文件,并且您可以从中读取与UI中显示的部分对应的数据子集。请仔细阅读文章,了解它需要什么。此外,如果您只处理2MB的数据,请避免不必要的复杂性。不要用大锤打破坚果。
作为对您的评论的跟进,让我为您提供以下提示: 您正在重复读取文件并获取计数×文件中的记录数。 每次滚动时都会执行代码。从那里开始并相应地开始修改代码。