WPF ListView复制由相同名称的项目替换的项目

时间:2018-07-30 17:55:29

标签: c# .net wpf listview

我正在开发一个程序,向用户显示他们扫描的所有页面,并允许他们在不满意的情况下重新扫描页面。我使用显示图像缩略图的列表视图对页面进行了小幅预览。

当我重新扫描页面时,旧的预览缩略图不会被删除,新的预览缩略图会在其旁边显示。我的代码将旧图像替换为具有相同名称的新图像。

关于如何解决此问题的任何想法?看来我无法按索引删除它或刷新视图来修复它。我可以重新加载所有图像,但是当我拥有超过20张图像时,我会担心性能。如果我的图像少于11张(0到9张),则不会遇到此问题。

Example of what the preview looks like, the new image is in color.

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;

0 个答案:

没有答案