我想剛剛添加一個由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的實際答案。
您可以用名稱保存在隔離存儲中,然後從其他頁面中取回。 –
http://stackoverflow.com/questions/12444816/how-to-pass-values-parameters-between-xaml-pages/12444817#12444817 –