2011-10-07 84 views
0

我有一個Silverlight導航應用程序,我加載並初始化MainPage.aspx加載中的很多東西。導航應用程序 - 啓動頁面啓動

所有頁面(視圖)都依賴於該數據的加載。

但是我的用戶經常在他們的桌面上爲我的應用程序添加一個Internet快捷方式。但鏈接經常指向這樣一個特定的頁面:

http://myServer/MyApp/default.aspx#/TheView

我想強迫用戶去「默認」的觀點(而忽略#/查看參數)當應用程序啓動。

什麼是我能做到的最好方法?

回答

1

我不認爲'避免'鏈接是個好主意。當應用程序沒有問題時,應該以某種方式構建應用程序。例如,您可以在加載所有內容時直接發送消息,直到該消息可以禁用相應的UI(等待數據時)爲止。 Messenger(或Prism中的EventAggregator)是一種發佈者 - 訂閱者模式,用於實現組件之間的通信,而無需彼此參考。如果你不知道它,看看MVVMLight信使棱鏡EventAggregator

但是,如果第一個選項是不行的,你可以用框架控件的JournalOwnership性能發揮:

http://msdn.microsoft.com/en-us/library/system.windows.controls.frame.journalownership(v=vs.95).aspx

http://msdn.microsoft.com/en-us/library/system.windows.navigation.journalownership(v=vs.95).aspx

OwnsJournal是您的價值,因爲它沒有與瀏覽器日誌集成,並且url保持原來的狀態,因此用戶無法爲「子頁面」添加書籤。

您也可以實現您自己的日記機制。

另一個:),但是如果你跟蹤第一個頁面加載(例如在OnNavigatedTo頁面事件中),並且在第一次請求時手動導航到主頁面,那麼會非常難看。或者在App.xaml.cs中,當應用程序啓動時,您轉發頁面請求。

但我推薦第一個。

+0

太棒了!我使用了OwnsJournal,它完美的工作!謝謝一堆! :) – danbord

相關問題