You will need to place the code in the Navigated event of the business object to reposition the index of the listview. If you use the primary key value as the "Tag Mamber" in the PopulationDataSourceSettings of the listview population, then the PK will exist for each record (or row) in the Tag property. So your code may look something like this:
''' <summary>
''' Capture the navigated event to sync up the listview
''' </summary>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub Customers_Navigated(ByVal e As MicroFour.StrataFrame.Business.NavigatedEventArgs) Handles Customers.Navigated
SetListViewIndex(Customers.cust_pk)
End Sub
''' <summary>
''' Syncs the listview with a primary key
''' </summary>
''' <param name="PrimaryKey"></param>
''' <remarks></remarks>
Private Sub SetListViewIndex(ByVal PrimaryKey As Integer)
'-- Esatblish Locals
Dim loItem As ListViewItem
'-- Remove any selected items
For Each loItem In Me.ListView1.Items
'-- See if the item matches the PK
If CType(loItem.Tag, Integer) = PrimaryKey Then
'-- Select the list item
loItem.Selected = True
'-- Make sure it is visible
ListView1.EnsureVisible(ListView1.Items.IndexOf(loItem))
Else
'-- Turn off the selection
loItem.Selected = False
End If
Next
End Sub
Obviously you can modify this to fit your needs, but this should give you the general idea.