private void MyList_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e)
{
var listCache = this._listItemCache;
if (listCache?.TargetList == sender)
{
ListViewItem item;
PostClass cacheItemPost;
if (listCache.TryGetValue(e.ItemIndex, out item, out cacheItemPost))
{
e.Item = item;
return;
}
}
// A cache miss, so create a new ListViewItem and pass it back.
TabPage tb = (TabPage)((DetailsListView)sender).Parent;
try
{
e.Item = this.CreateItem(tb, _statuses.Tabs[tb.Text][e.ItemIndex], e.ItemIndex);
}
catch (Exception)
{
// 不正な要求に対する間に合わせの応答
string[] sitem = {"", "", "", "", "", "", "", ""};
e.Item = new ImageListViewItem(sitem);
}
}