【发布时间】:2011-06-21 18:08:27
【问题描述】:
我有一个(数千个)数据集合已经保存在我的隔离存储中。问题是,在我从中获取集合并将其绑定到我的列表框后,加载速度非常慢。处理这种情况的最佳方法是什么?
【问题讨论】:
标签: silverlight windows-phone-7
我有一个(数千个)数据集合已经保存在我的隔离存储中。问题是,在我从中获取集合并将其绑定到我的列表框后,加载速度非常慢。处理这种情况的最佳方法是什么?
【问题讨论】:
标签: silverlight windows-phone-7
快速的最佳方法是不要使用包含数千个项目的集合。
哪一部分慢?
如果是从 IsolatedStorage 中读取,请少读。
如果您不需要所有数据,请将其放入较小的文件中(划分数据),并仅在需要时加载文件,而不是一次加载所有数据。取决于数据和应用程序将影响如何以及是否可以这样做。
如果它将大量数据加载到 ListBox 中,请不要。
ListBox 的设计目的不是容纳数千个项目。
从可用性的角度来看,很难在一个非常大的列表中找到特定的项目。尤其是当您一次只能看到很少数量的项目(在屏幕上)时。
考虑使用 LongListSelector 或虚拟化列表以提高性能。
我强烈推荐一种不同的应用设计,但不需要长列表。
【讨论】:
如果您实际上是从独立存储中将文件本身读取到列表中,则可以通过将文件元数据存储在 XML 文件或某种数据库中来提高性能。对于 Windows Phone 7.0,您可以使用 SterlingDB,它是对独立存储的抽象,可让您对存储在应用程序文件系统中的数据执行 SQL 查询。
创建一个包含数千个项目的列表似乎是个坏主意,但是如果您有一个包含文件名和数据的 XML 文件,那么您可能会比尝试循环遍历数千个项目获得更好的性能文件并提取文件名。
【讨论】: