我正在开发一个程序,向用户显示他们扫描的所有页面,并允许他们在不满意的情况下重新扫描页面。我使用显示图像缩略图的列表视图对页面进行了小幅预览。
当我重新扫描页面时,旧的预览缩略图不会被删除,新的预览缩略图会在其旁边显示。我的代码将旧图像替换为具有相同名称的新图像。
关于如何解决此问题的任何想法?看来我无法按索引删除它或刷新视图来修复它。我可以重新加载所有图像,但是当我拥有超过20张图像时,我会担心性能。如果我的图像少于11张(0到9张),则不会遇到此问题。
ListView的XAML:
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical"
VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<Image Source="{Binding image}"
HorizontalAlignment="Center" VerticalAlignment="Top" Stretch="Fill" />
<TextBlock Text="{Binding titre}"
HorizontalAlignment="Center" VerticalAlignment="Bottom" />
<TextBlock Text="{Binding index}" Visibility="Visible"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
此代码替换了正确的图片:
private void UpdateListePreview(int index)
{
if (index >= 0 && index < imagelist.Count)
{
imagelist[index] = controleur.ChargerImageSelectionnee(index, 320, 480);
listePreview.SelectedIndex = index;
}
}
此代码将图像添加到ObservableCollection中:
imagelist = new ObservableCollection<ImageData>();
foreach(ImageData data in controleur.ChargerImages())
{
imagelist.Add(data);
}
listePreview.ItemsSource = imagelist;