c# - WPF ListView 重复项目替换为同名项目
问题描述
我正在开发一个程序,该程序向用户显示他们扫描的所有页面,如果他们不满意,允许他们重新扫描页面。我使用显示图像缩略图的列表视图对页面进行了小预览。
当我重新扫描一个页面时,旧的预览缩略图没有被删除,新的预览缩略图出现在它旁边。我的代码用同名的新图像替换旧图像。
关于如何解决这个问题的任何想法?我似乎无法通过索引删除它或刷新视图来修复它。我可以重新加载所有图像,但是当我有超过 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;
解决方案
推荐阅读
- node.js - 使用请求流和异步处理关闭连接
- android - 在闭包中捕获时,包装到要修改的参考对象中
- javascript - Error wss://mqtt.eclipse.org when create mqtt client
- python - Huey 任务队列仅在上次重试时处理错误并检索异常回溯
- javascript - 在 1 行代码中以 Javascript 显示实时日期 + 时间
- sql - SQL - 隐藏重复值 - sql 脚本
- c# - 如何使用实体框架错误获取记录列表 - 模型项传递到字典中,但此字典需要模型项
- laravel - 从控制器向 vue.js 发送错误并删除方括号
- python - 在 python 中实现 curl --resolve 标志
- excel - 在多个选择中复制多个范围