¿Por qué el programa se bloquea al agregar muchas imágenes a la vista de lista?
Este es mi 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>
Y de esta manera agrego elementos a 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)));
Este código funciona perfectamente con un pequeño recuento de imágenes, pero cuando intento abrir una carpeta con más de 100 imágenes, mi programa se bloquea. ¿Qué hago mal o qué puedo hacer para optimizar mi programa?