2013-08-17 37 views
0

我在哪里,我使用列表框。在列表框中我结合一些images.Here开发Windows手机应用程序是我的代码......更快的方式来加载列表框图像的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,所有工作perfectly.But问题的页面加载时,它正变得这么慢loading.Even它需要很多时间来加载,我需要更快加载这些图像的方法,以便图像可以在几秒钟内加载到列表框中。实际上是否有任何方法将列表框图像合并,以便它们快速加载。 plsss ... help -.....

2.also刷新或加载页面第二次或单击后退按钮时,在picture.getimage()中的getimages()方法显示内存异常(I已经写在代码中)。

所以请帮助......

回答

0

首先,我会建议使用Windows Phone Application Analysis使用Windows Phone App Profiling &检查性能计数器。这两个将给出关于何时何地表现击中的想法。第二。数据虚拟化的概念允许虚拟装载大量数据。你可以找到更多关于here的信息。此链接适用于Windows应用程序,但几乎适用于Windows Phone。

最后,我会推荐使用MVVM类型的模式,其中视图和数据将被分开并且易于调试。但是,这不是必需的。

希望,这有助于。

+0

感谢您的回复brother.But我知道这些方法,它只会测试性能,它不会增加性能。所以如果你知道任何其他方法来绑定列表框,这样它会快速加载,这将有助于我 –