Проблема с отображением Details в ListView C# VirtualMode

Приложение на Winforms.

Использую VirtualMode для отображения данных в ListView. Сначала создаю столбцы.

for (int i = 0; i < lStr; i++)
{
    dataTable.Columns.Add(i.ToString(), "Col#" + i.ToString());            
}
            
dataTable.VirtualListSize = showArray.Length;

Для заполнения использую событие RetreveVirtualItem.

private void dataTable_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e)
{
    e.Item = new ListViewItem(showArray[e.ItemIndex].ToString());
}

В режиме представления Details получаю такую ошибку.

System.InvalidOperationException: "В режиме VirtualMode событие RetrieveVirtualListItem для ListView требует наличия подэлемента представления списка для каждого столбца ListView."

В других режимах отображения данной ошибки не возникает.


Ответы (1 шт):

Автор решения: Alexander Petrov

В ошибке всё сказано: требуется подэлемент (SubItem) для каждого столбца.

Нужно примерно следующее:

private void DataTable_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e)
{
    var item = new ListViewItem();

    for (int i = 0; i < dataTable.Columns.Count; i++)
        item.SubItems.Add("тут данные для столбца");

    e.Item = item;
}
→ Ссылка