A ListView contains ListViewItem objects. That's it, that's all. When the user selects an item, they are selecting a ListViewItem object. If you want to then access some other object that is related to that item, it's up to you to create an explicit relationship of some kind between them. A common means to do that is to assign those original objects to the Tag property of the corresponding ListViewItem, e.g.
For each something As Thing In myThings
Dim item As New ListViewItem
item.Tag = something
'...
myListView.Items.Add(item)
Next
You can then get those objects back from the Tag properties of the selected items, e.g.
For Each item As ListViewItem In myListView.SelectedItems
Dim something = DirectCast(item.Tag, Thing)
'...
Next
ViewtoDetailsthen you probably shouldn't be using aListViewin the first place. If you have a list of objects in the first place then you probably ought to be binding that to aBindingSourceand binding that to aDataGridView. Each row in the grid has aDataBoundItemproperty that will automatically expose the item from the underlying list.