Я использую ListView для загрузки и отображения миниатюр для файлов изображений.«Имя» или ключ, который я использую для каждого ListViewItem - это полное имя файла.
Я также создал ImageList, который загружает миниатюры этих файлов, используя тот же ключ.Я назначил этот ImageList как свойство «SmallImageList» ListView.
Когда я добавляю и удаляю файлы, я добавляю и удаляю их по ключу как из ListView.Items, так и изКоллекции ImageList.Images.
Все это прекрасно работает при загрузке многих изображений.Однако, когда я пытаюсь удалить заданный ключ, элемент управления ListView больше не отображает эскизы должным образом.
До и после удаления элемента:
![After](https://i.stack.imgur.com/HtMpX.png)
Когда во время отладки я анализирую оба набора коллекций в памяти, ключи выстраиваются идеально.
Используемый код:
// 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);
}