ListView를 사용하여 이미지 파일의 축소판을로드하고 표시합니다. "Name"또는 각 ListViewItem에 대해 사용하는 키는 정규화 된 파일 이름입니다.ListView <--> ImageList가 동기화되지 않습니다.
동일한 키를 사용하여 파일의 미리보기 이미지를로드하는 ImageList도 만들었습니다. 이 ImageList를 ListView의 "SmallImageList"속성으로 할당했습니다.
파일을 추가 및 제거 할 때 List30.Items 및 ImageList.Images 컬렉션에서 키으로 을 추가 및 제거합니다.
많은 이미지를로드 할 때이 모든 기능이 정상적으로 작동합니다. 그러나 주어진 키를 삭제하려고하면 ListView 컨트롤에 더 이상 축소판이 제대로 표시되지 않습니다.
은 전에하고 항목을 삭제 한 후 : 내가 디버깅하는 동안 메모리에 모두 수집 배열을 분석 할 때
는 키는 완벽하게 일렬로.
코드를 사용 : 당신이 ListViewItem
이미지 인덱스 5
에 바인딩하고 위치 4
에서 이미지를 삭제할 경우
// 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);
}
색인 기반 키로 코드 변환을 마쳤으며 똑같은 문제가 발생했습니다. –
이미지를 삭제하고 아이템 포인트를 올바른 인덱스로 유지하는 솔루션 [이 게시물을 참조하십시오] (http://stackoverflow.com/questions/39916598/removing-listviewitem-with-image-from-listview)/39920779 # 39920779) – TaW