DataGridView хорош, если вы хотите иметь возможность редактировать данные прямо из таблицы, как электронная таблица. Режим просмотра списка в деталях отлично подходит для простого представления списков столбцов данных. Насколько мне известно, DataGridView также будет легче сортировать.
Обычно я делаю что-то вроде этого:
private void UpdateListView()
{
mListView.Items.Clear();
foreach (Item item in mItems)
{
ListViewItem listViewItem =
new ListViewItem(item.Value1.ToString()) { Tag = item; }
listViewItem.SubItems.Add(item.Value2.ToString());
listViewItem.SubItems.Add(item.Value3.ToString());
mListView.Items.Add(listViewItem);
}
}
Столбцы должны быть определены в конструкторе, включая текст заголовка столбца и ширину столбца.
С помощью элемента Tag = item; вы сможете получить доступ к выбранному объекту с помощью:
if (mListView.SelectedIndices.Count <= 0)
return;
Item selectedItem = mListView.SelectedItems[0].Tag as Item;
if (selectedItem == null)
return;
// do something with selectedItem