2011-03-02 50 views
25

有沒有辦法在我的Windows Phone 7應用程序中獲取當前頁面的活動實例?我一直在閱讀文檔,並試圖找出無濟於事。如何在我的WP7應用程序中獲取當前頁面

在我的例子中,我正在運行一個全局循環,它調用活動頁面的公共方法。

例如,應用程序加載到Page1.xaml,如果我的循環在這個頁面激活時觸發,我需要激發在Page1代碼隱藏中找到的循環。如果Page2處於活動狀態,我將需要在Page2代碼隱藏文件中觸發不同的方法。

注意:我在單個頁面中的方法不能是靜態的,因爲我需要訪問實例變量。因此,我不僅需要活動頁面(可通過某種變量實現),但我需要當前頁面的實例

回答

38

你可以從根框架中獲取當前頁面。該項目中生成的默認App類具有已經屬於PhoneApplicationFrame類型的RootFrame屬性。 Content屬性的值是當前頁面,可以轉換爲PhoneApplicationPage

var currentPage = ((App)Application.Current).RootFrame.Content as PhoneApplicationPage;

RootVisual財產上的Application類引用同一個框架,但它是一個UIElement,所以你可以改用以下:

var currentPage = ((PhoneApplicationFrame)Application.Current.RootVisual).Content;
+0

使用這種技術,我將如何繼續調用方法在PhoneApplicationPage中?它不允許currentPage.myMethod(); – andersra 2011-05-13 05:28:26

+1

您可以使用與任何其他課程相同的方式在結果頁面上調用公共方法。要在你自己的頁面上調用方法,你需要將結果轉換爲特定的類,以便能夠訪問它的公共方法。 – 2011-05-13 06:31:41

+0

我在這裏錯過了什麼嗎? 'var currentPage =((App)Application.Current).RootFrame.Content as PhoneApplicationPage; currentPage = currentPage as Namespace.MyPage;' – andersra 2011-05-14 21:01:27

相關問題