2013-05-13 83 views
-1

我实际上是一名Android开发人员,当我将大量图像加载到ListBox时,我遇到了内存异常问题。从URL加载大量图像

我不知道Windows Phone应用程序开发,因此建议更好的解决方案,将大量图像从Windows Phone中的URL加载到ListBox

代码如下:

public class listboxrows 
    { 
     public string text1 { get; set; } 
     public string imageUri { get; set; } 
     public string text2 { get; set; } 
     public string instID { get; set; } 
    } 

     <Image Grid.Column="0" Width="90" Height="90" Source="{Binding imageUri}" ></Image> 

我想知道这是否是从URL加载图像的有效方式。

如果我有大量的图像,它会显示一个内存异常。

建议我一个更好的选项,我可以在没有任何内存异常的情况下高效加载任意数量的图像。

有没有任何外部项目来实现我的目标?

+0

谁投下来至少回答这个问题 – 2013-05-13 05:58:19

+0

'ListView'或'ListBox'的人吗? – jAC 2013-05-13 06:16:25

+0

Windows Phone中的ListBox控件 – 2013-05-13 06:17:37

回答

0

尽管我没有编写实际的代码来测试它,但我认为这里的正确方法是确保您使用数据虚拟化。 This article提供了一个很好的例子(尽管它讨论了Windows Phone 7的开发,但它仍然适用)。

如果确实有大量数据要显示,您可能需要进一步研究this article中的方法,以进一步优化显示ListBox中项目的工作。

当然,标准免责声明是用户必须滚动浏览大量项目的UI不一定总是最好的方法。

0

我认为this article会有所帮助。

  • 决不绑定服务器托管的图像就可以直接控制,因为Silverlight运行时将使用的UI线程(使用Web客户端)来从服务器获取该图像,可以使用户界面反应迟钝一些时间。

  • 使用后台线程和基于HttpWebRequest类的实现以有效的方式下载图像数据,最终创建BitmapImage并将其设置为源。一个干净的MVVM包装这将使你的整个图像管理变得非常简单。