我正在开发使用列表框的Windows Phone应用程序。在列表框中我绑定了一些图像。这是我的代码......
代码背后的.....
public MainPage()
{
InitializeComponent();
getImages();
}
public void getImages()
{
try
{
MediaLibrary mediaLibrary = new MediaLibrary();
var pictures = mediaLibrary.Pictures;
foreach (var picture in pictures)
{
BitmapImage image = new BitmapImage();
image.SetSource(picture.GetImage());//out of memory exception
img mediaImage = new img();
mediaImage.Imgs = image;
imageList.Items.Add(mediaImage);
}
}
catch (Exception ex)
{
}
}
public class img
{
public img()
{ }
public BitmapImage Imgs { get; set; }
}
在Xaml ......
<ScrollViewer Name="sc" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Hidden" Margin="0,422,0,43">
<ListBox Name="imageList" SelectionChanged="imageList_SelectionChanged_1" Height="126">
<ListBox.ItemsPanel>
<ItemsPanelTemplate >
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate >
<StackPanel Orientation="Horizontal">
<Image Margin="10" Name="image1" Source="{Binding Imgs}" Height="150" Width="150"></Image>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
1.所有工作都很完美。但问题是当页面加载时,加载速度变得很慢。即使加载也需要很多时间。我需要一种更快的方式加载这些图像,这样图像可以在几秒钟内加载到列表框中。实际上有任何方法可以将列表框图像分开,以便快速加载。 Plsss ... help -.....
2.另外当第二次刷新或加载页面或点击后退按钮时,在picture.getimage()中的getimages()方法中,它显示内存异常(我已用代码编写)。
所以请帮忙......
答案 0 :(得分:0)
首先,我建议使用Windows Phone App Profiling&amp;使用Windows Phone Application Analysis。这两个将给出关于性能何时何地被击中的想法。第二。存在数据虚拟化的概念,其允许虚拟地加载大量数据。您可以找到有关相同here的更多信息。此链接适用于Windows应用程序,但也适用于Windows Phone。
最后,我建议使用MVVM类型的模式,其中视图和数据将是分开的并且易于调试。但是,这不是必需的。
希望,这有帮助。