以下是我的应用程序的一个屏幕,在每次对服务器(WCF)的搜索调用中加载大约100个项目。
我有以下两个问题。
一个:目前我正在将所有结果项目分配给长列表选择器的itemssource,但我想最初加载10个项目,当用户向下滑动几乎结束时再加载10个项目。在许多应用程序(foursquare)中已经看到过这种行为,但无法弄清楚因为我是Silverlight的新手。
二:如果项目有图像,则PicturePath
设置为服务器图像路径,否则设置本地无图像路径。问题是当图像被下载时,图像区域显示为空白,直到它完全下载然后开始显示图像,我需要它像foursquare显示,直到图像完全加载。下面给出了我的绑定代码以及我的要求。
感谢。
答案 0 :(得分:0)
用一堆代码回答这两个问题毫无意义。
关于第一个问题,您需要一种方法来检测用户何时滚动到ListBox / LongListSelector的底部。您需要使用ObservableCollection而不是简单的List,因为ObservableCollection会在新项目添加到UI时通知UI。
此问题之前曾被问过几十次,for example see here。
关于第二个问题,最简单的解决方案是在ItemTemplate中使用两个图像,一个在另一个图像的顶部。这样,当动态为空时,将显示静态的本地图像,当下载动态图像时,它将覆盖静态图像。它渲染在静态图像之上,就好像静态图像不存在一样。
<Grid>
<Image Source="Assets/StaticImageFromLocalCache.jpg" Width="400" Height="400" />
<Image Source="Assets/DynamicImageFetchedFromInternet.jpg" Width="400" Height="400" />
</Grid>