0

在 Windows Phone 中,ListBox 支持数据的虚拟化,这意味着它只能加载需要的数据,而不是所有的数据。Peter Torr解释了您需要实现的接口。

简短的版本是您必须创建一个返回元素位置的方法和另一个返回特定位置的元素的方法。问题是 Peter Torr 的例子相当愚蠢,他只是返回一个以索引为名称的对象。

我的问题是:您如何实际实现这一点?

我的想法是创建一个文件,其中包含一个(整数)索引和一个(整数)id 的列表以及一个包含实际数据的每个对象的文件。这似乎不是一个真正优雅的想法,但我想不出更好的办法,你能吗?

更新

看来我的问题不准确。当我说彼得·托尔的例子“相当愚蠢”时,我并不是说他做错了什么;而是说他做错了什么。他的目的只是解释你需要实现什么接口。实际实施将取决于具体数据。

我要问的是我有什么选择来实现这个?我是否应该简单地将数据放在 Web 服务上并每次都查询它(当然,使用本地缓存),构建数据库,创建一个文件来存储索引和一个用于数据的文件?在每种情况下都有足够好的解决方案吗?每个选择的优缺点是什么?

4

2 回答 2

0

你还追求什么?一般的想法是 ListBox 将在需要数据时调用您的 IList。它会在特定索引处请求一个项目,然后你传回一个对象。然后,它大概会在该对象上调用 ToString() 并将结果显示在列表中。

那个实际的物体是什么以及你把它从哪里拉出来完全取决于你。您可能在内存中使用了一个非常大的数组。您可能是从独立存储或 Web 服务中提取的。您当然可以使用它来提取文件信息,但我不怀疑任何人都有现成的 IList 实现,所以这是您必须根据您的特定项目实现的部分。

于 2010-10-22T19:49:45.573 回答
0

您链接到的文章包含一个可下载项目的链接,该项目演示了如何实现这一点。

于 2010-10-22T16:34:23.967 回答