一千萬個為什麽

搜索

Windows Phone 7/Silverlight:如何進行導航?

我正在開發一個Silverlight wp7應用程序。我不確定如何做導航。

我有幾個 PhoneApplicationPage 類,其中包含幾個 UserControl 。看起來我可以使用 NavigationServicePhoneApplicationPage 類導航,而不是 UserControl 類。那更好嗎?一般模式是不是直接從 UserControl 導航,而是從 PhoneApplicationPage 處理它?

目前,我有一系列內容分為幾個部分。每個部分在 PivotControl 中都有自己的 PivotItem 。每個部分的內容都在 ListBox 中。我將 ListBox 包裝在 UserControl 中,以提供更多功能/管理內容。但是,看起來我無法直接從這個類導航。

我可以刪除包裝器,直接將功能放在數據透視頁面中。但是如果我想在我的應用程序的其他地方重復內容列表呢?

或者,當 PhoneApplicationPhoneApplicationPage 構造時,我將 NavigationService 傳遞給 UserControl

最佳答案

在WPF中,它很簡單:您可以在 NavigationService 上調用靜態方法來獲得答案: NavigationService.GetNavigationService(this)

不幸的是,這似乎不適用於WP7。

相反,我想出了這個黑客......它像罪一樣醜陋......希望有更好的東西。可能,至少,你可以想出一些更漂亮的東西。至少做一些空檢查......

var service = ((Application.Current as App).RootFrame.Content as Page).NavigationService;

轉載註明原文: Windows Phone 7/Silverlight:如何進行導航?