У меня проблема с дизайном моего списка.
В настоящее время он имеет следующий DataTemplate как ItemTemplate:
<DataTemplate x:Key="MovieItemTemplate">
<StackPanel>
<Border BorderBrush="{StaticResource PhoneForegroundBrush}" BorderThickness="5" Margin="3" Height="215" Width="140">
<Image x:Name="MovieCover"
toolkit:TiltEffect.IsTiltEnabled="True"
Margin="0"
HorizontalAlignment="Center"
Width="140"
Height="210">
<Image.Source>
<BitmapImage UriSource="{Binding Cover}" CreateOptions="BackgroundCreation"/>
</Image.Source>
<interactivity:Interaction.Triggers>
<interactivity:EventTrigger EventName="Tap">
<gsextra:EventToCommand Command="{Binding MainViewModel.MovieItemSelectedCommand, Source={StaticResource Locator}}"
PassEventArgsToCommand="True"
CommandParameter="{Binding MovieID}"
></gsextra:EventToCommand>
</interactivity:EventTrigger>
</interactivity:Interaction.Triggers>
</Image>
</Border>
</StackPanel>
</DataTemplate>
Итак, как вы можете видеть, у меня есть изображение внутри, которое будет загружать его контент из интернета через URI. Благодаря новой опции манго BackgroundCreation (ср. http://blogs.msdn.com/b/slmperf/archive/2011/06/13/off-thread-decoding-of-images-on-mango-how-it-impacts-you-application.aspx) он загружается в фоновом режиме.
Но у меня очень большая коллекция, и хотя я делаю «постраничную» привязку источника Listbox, я замечаю, что моя память продолжает увеличиваться, пока она не израсходует все и приложение не вылетит.
Затем я заметил это http://blog.wpfwonderland.com/2011/01/17/images-and-memory-leaks-in-windows-phone-7/, поэтому мне кажется, что мне нужно очистить само изображение из-за функции кэширования изображений в wp7.
Когда я делаю это, все прекрасно работает в отношении памяти, НО теперь каждый раз, когда пользователь «просматривает» страницы через список, необходимо перезагружать изображения, в результате чего приложение практически не используется ... потому что пользователь продолжает ждать этих изображений.
Какие-либо советы / хитрости о том, как это сделать?
Я также попробовал DefferedLoadListBox