У меня есть LongListSelector, который содержит элемент управления изображением, который загружает много изображений из Интернета, некоторое время это работает нормально, но после того, как я загрузил некоторые изображения, я получаю исключение из памяти. Я читал других людей, у которых была такая же проблема с нехваткой памяти с большим количеством изображений, но до сих пор не нашел решения. Я читал, что это как-то связано с кешем изображений/BitmapImage.
Вот мой LongListSelector, который содержит элемент управления изображением:
<phone:Pivot Title="MY APPLICATION">
<!--Pivot item one-->
<phone:PivotItem Header="Browse">
<Grid>
<phone:LongListSelector Name="llsGameList" ItemsSource="{Binding}" Tap="llsGameList_Tap" Margin="0,90,0,0">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<Grid>
<Image Name="imgGameList" Margin="0,10,0,10" Stretch="Fill" HorizontalAlignment="Left" VerticalAlignment="Top" Height="200" Width="150">
<Image.Source>
<BitmapImage UriSource="{Binding BoxArtFrontThumb}"
CreateOptions="BackgroundCreation" DecodePixelHeight="200" DecodePixelWidth="150" />
</Image.Source>
</Image>
</Grid>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
</Grid>
</phone:PivotItem>
В моем MainPage.xaml.cs я установил DataContext моего LongListSelector:
llsGameList.DataContext = gd.GetGamesListItems;
И вот класс, который я использую для хранения своего изображения:
public class GetGamesList
{
public Uri BoxArtFrontThumb { get; set; }
}
Вот ObservableCollection, содержащий все изображения:
private ObservableCollection<GetGamesList> _GetGamesListItems = new ObservableCollection<GetGamesList>();
public ObservableCollection<GetGamesList> GetGamesListItems
{
get
{
return this._GetGamesListItems;
}
}
Надеюсь понятно объяснил. Я действительно надеюсь, что есть кто-то, кто может помочь мне решить эту проблему с памятью. Спасибо.