1

我读了这个链接:

http://www.codeproject.com/Articles/34405/WPF-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,但启动数据虚拟化时,它使用 3 gig 内存!

我想知道如何使用数据虚拟化来读取文本文件?

4

1 回答 1

0

由于您正在阅读整个文本文件,因此您违背了数据虚拟化的目的,即仅延迟加载数据的可见部分。为此,您需要一个具有固定记录大小的数据库或文件,并且您可以从中读取与 UI 中显示的部分相对应的数据子集。请仔细阅读这篇文章以了解它需要什么。此外,如果您只处理 2MB 的数据,请避免不必要的复杂性。不要用大锤敲碎螺母。

作为对您的评论的跟进,让我为您提供以下提示:您正在重复阅读文件并获得文件中的计数 × 记录数。每次滚动时都会执行您的代码。从那里获取并开始相应地修改您的代码。

于 2013-08-12T06:38:57.980 回答