我目前正在開發一個包含2頁(page1
,page2
)的Windows 8應用程序。在WinRT中獲取頁面實例
使用this.Frame.Navigate(typeof(AnotherPage));
我如何可以訪問的page2
形式page1
實例,導航形式第1頁至第2頁, 後(我們可以通過對具有靜態實例屬性實現它,並把它當調用構造函數)
但是是否有任何內置功能從當前頁面外部訪問頁面的當前實例,或者是在WinRT範例中推薦這種編程模式,是否有任何方法來實現我的場景。
我目前正在開發一個包含2頁(page1
,page2
)的Windows 8應用程序。在WinRT中獲取頁面實例
使用this.Frame.Navigate(typeof(AnotherPage));
我如何可以訪問的page2
形式page1
實例,導航形式第1頁至第2頁, 後(我們可以通過對具有靜態實例屬性實現它,並把它當調用構造函數)
但是是否有任何內置功能從當前頁面外部訪問頁面的當前實例,或者是在WinRT範例中推薦這種編程模式,是否有任何方法來實現我的場景。
第一件事 - 默認情況下,默認情況下,默認情況下,在您默認導航到下一頁後,上一頁的實例不會保留在內存中 - 除非您更改頁面的默認NavigationCacheMode,除非您不更好,否則該頁面需要花費大量的時間來加載,並且像一個集線器頁面,您可以回到很多。
我建議的方法是使用MVVM模式,因此頁面不必互相交談,而是視圖模型。然後在MVVM Light Toolkit中使用帶有助手的發佈/子模式來發送弱事件/消息,而不是在對象之間添加緊耦合。
總而言之 - 這取決於你想做什麼以及爲什麼你想讓你的網頁彼此交談。您可以在Navigate()調用中傳遞一個參數(確保它只是一個基本類型,但如果您想要使用SuspensionManager類和Frame類中的內置序列化支持應用程序暫停)。您還可以使用某種全局存儲庫或設置服務在頁面之間共享數據。
如果你不願意投資這些東西 - 使用普通的舊靜態類可能就足夠了。無論什麼作品。