Освобождение памяти от картинок в ListBox
У меня есть листбокс, элементы которого являются мною написанным классом. У этих элементов есть название и картинка(путь).
Я столкнулся с такой проблемой, что когда я очищаю и пересобираю листбокс новыми элементами, старые остаются в памяти и со временем засоряют ее. Из-за этого новые картинки грузятся все медленнее и медленнее.
Прикладываю код:
<StackPanel x:Name="StackUpListBox" Height="200">
<ListBox x:Name="GamesListBox" Height="200">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding image}" Width="50" Height="50" Margin="3"/>
<TextBlock Text="{Binding title}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
Подскажите пожалуйста, как мне очищать вручную старые элементы листбокса из памяти?
Вот по какому принципу идет наполнение листбокса элементами:
GamesListBox.Items.Clear();
var select = GamesCatgs.SelectedItem;
string FilePath = $"Jsons\\Category{select}.json";
using (StreamReader sr = new StreamReader(FilePath))
{
string json = sr.ReadToEnd();
if (!string.IsNullOrEmpty(json))
{
allGames = JsonConvert.DeserializeObject<List<GameItem>>(json);
displayedCount = 0;
AddGamesToListBox();
}
}
private void AddGamesToListBox()
{
int countToAdd = Math.Min(10, allGames.Count - displayedCount);
for (int i = 0; i < countToAdd; i++)
{
GamesListBox.Items.Add(allGames[displayedCount]);
displayedCount++;
}
}