上記のZikが提供する素晴らしい回答のVB.netバージョンを追加したいだけです。彼のコードを VB に変換する方法を理解すると、すぐにナビゲーションが WinRT/Windows 8 の方法と同様に機能するようになりました。
次のコードでモジュールを作成しました。
Module NavigationExtensionsModule
Sub New()
End Sub
Private _navigationData As Object = Nothing
<System.Runtime.CompilerServices.Extension> _
Public Sub Navigate(service As NavigationService, page As String, data As Object)
_navigationData = data
service.Navigate(New Uri(page, UriKind.Relative))
End Sub
<System.Runtime.CompilerServices.Extension> _
Public Function GetLastNavigationData(service As NavigationService) As Object
Dim data As Object = _navigationData
_navigationData = Nothing
Return data
End Function
End Module
次に、次のような別のページに移動します。
NavigationService.Navigate("pagename.xaml", ObjectToPassToThePage)
最後に、別のページの OnNavigatedTo サブでそのオブジェクトを取得します。
ThisPageData = NavigationService.GetLastNavigationData()
Me.DataContext = ThisPageData
実際の回答は Zik の功績によるものです。