首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListView <-> ImageList不会同步

ListView <-> ImageList不会同步
EN

Stack Overflow用户
提问于 2011-10-26 20:53:21
回答 1查看 950关注 0票数 1

我使用一个ListView来加载和显示图像文件的缩略图。我为每个ListViewItem使用的“名称”或键是完全限定的文件名。

我还创建了一个ImageList,它使用相同的键加载这些文件的缩略图。我已经将这个ImageList指定为ListView的"SmallImageList“属性。

当我添加和删除文件时,我通过键从ListView.Items和ImageList.Images集合中添加和删除它们。

当加载许多图像时,所有这些都工作得很好。但是,当我尝试删除给定的键时,ListView控件不再正确显示缩略图。

删除项目之前和之后:

在调试期间,当我分析内存中的这两个集合数组时,键就完美地排列在一起。

所用代码:

代码语言:javascript
复制
// Add the images from an array of paths
foreach (string xFile in files)
{
    thumbnails_imageList.Images.Add(xFile, images[xFile]);
    files_lst.Items.Add(xFile, Path.GetFileNameWithoutExtension(xFile), xFile);
}

// Delete the selected key(s)
foreach (ListViewItem xItem in files_lst.SelectedItems)
{
    files_lst.Items.Remove(xItem);
    thumbnails_imageList.Images.RemoveByKey(xItem.Name);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-26 21:26:08

很清楚,如果您有一个绑定到图像索引ListViewItem5,并且删除了位于4位置的图像,则5移动到4,并且该项保留了对5的引用,因此不会显示任何图像。

我认为当您删除选定的ImageList项时,不应该从ListView中删除图像。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7908804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档