Por que o programa falha ao adicionar muitas imagens ao listview?
Este é o meu XAML:
<ListView MouseDoubleClick="ImageList_MouseDoubleClick" Name="ImageList" Background="#353535" Grid.Row="2" Margin="0 5 0 0">
<ListView.ItemTemplate>
<DataTemplate>
<Grid Cursor="Hand" Width="200" Height="130" VerticalAlignment="Center" HorizontalAlignment="Left">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="30"/>
</Grid.RowDefinitions>
<Image Source="{Binding ImgPath}" Grid.Row="0"/>
<Label FontSize="14" Foreground="White" Grid.Row="1" HorizontalAlignment="Center" Content="{Binding Name}"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" Width="{Binding Path=ActualWidth, ElementName=ImageList}"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
E desta forma eu adiciono itens ao ListView:
String[] extensions = { "*.bmp", "*.png", "*.jpg", "*.jpeg", "*.tiff", "*.ico", "*.gif" };
List<String> images = new List<String>();
foreach (String ext in extensions)
{
try
{
images = images.Concat(Directory.GetFiles(path, ext)).ToList();
}
catch { }
}
ObservableCollection<ImageBlock> ImageCollection = new ObservableCollection<ImageBlock>();
foreach (String img in images)
this.ImageList.Items.Add(new ImageBlock(img, System.IO.Path.GetFileName(img)));
Esse código funciona perfeitamente com uma pequena contagem de imagens, mas quando tento abrir uma pasta com mais de 100 fotos, meu programa falha. O que faço de errado ou o que posso fazer para otimizar meu programa?