Well, in the code snippet you gave would be all of the slowest possible ways to enumerate a BO and create a list view item (though I didn't see the code behind your CredteListViewItem). In this example, you are manually populating your ListView which requires a bit of optimization to prevent rendering and callbacks.When manually populating a ListView, you will want to call the BeginUpdate() prior to loading:
'-- Prevents events and rendering (will dramaticaly improve loading)
MyListView.BeginUpdate()
'-- Populate Here
'-- When completed, end the update otherwise the list will not act right
MyListView.EndUpdate()
Next, when you enumerate a BO, use the enumerator:
For Each bo As MyBOType in MyBoInstance.GetEnumerable()
'-- You now have a strong-typed reference and pointers, etc. will all be handled
' from within the enumerator
MyListVIew.Items.Add(CreateListViewItem(bo))
Next
But the best way would be to let the ListView populate for you as it already handles all of this. Ust the PopulationDataSoruceSettings of the ListView to manage this for you.