private void PreviewListView_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e) { int index; if (_indexList.TryGetValue(e.ItemIndex, out index)) { e.Item = new ListViewItem { ImageIndex = index, Text = e.ItemIndex.ToString() }; return; } _indexList.Add(e.ItemIndex, ImageList.Images.Count); ImageList.Images.Add(_library.GetPreview(e.ItemIndex)); e.Item = new ListViewItem { ImageIndex = index, Text = e.ItemIndex.ToString() }; }