一般我們在撰寫Windows Store App 或 Windows Phone App 時,很容易會利用參數的傳遞來做跳頁的動作,然後再OnNavigationTo裡接收參數後初始化一些自定義的功能,但是若我們在頁面中按下【Home鍵】或【Bing Search 鍵】時頁面跳出觸發OnNavigationFrom,在按下【返回鍵】回到應用程式內又再次觸發 OnNavigationTo,此時又會在初始化自定義的功能一次,這代表著自定義初始化裡的物件和變數都更新了,就的資料也被洗掉。
本篇文章將引導您簡易判斷應用程式頁面是否為第一次進入。
一般我們在撰寫Windows Store App 或 Windows Phone App 時,很容易會利用參數的傳遞來做跳頁的動作,然後再OnNavigationTo裡接收參數後初始化一些自定義的功能,但是若我們在頁面中按下【Home鍵】或【Bing Search 鍵】時頁面跳出觸發OnNavigationFrom,在按下【返回鍵】回到應用程式內又再次觸發 OnNavigationTo,此時又會在初始化自定義的功能一次,這代表著自定義初始化裡的物件和變數都更新了,就的資料也被洗掉。
本篇文章將引導您簡易判斷應用程式頁面是否為第一次進入。
首先我們要自定義一個變數用來存放是否為第一次進入的bool值,預設為True,表示為第一次進入,
當成是第一次觸發OnNavifationTo的時候將Bool改為False,表示之後再存取該Bool時則為否,頁面已經不是第一次進入了,
C# :
1: //自定義變數,用來判斷是否為第一次進入
2: //預設為 True 表示第一次進入
3: private bool isFirstIn = true;
4: public MainPage()
5: {
6: InitializeComponent();
7:
8: }
9: //複寫OnNavigatedTo事件,加入判斷式
10: protected override void OnNavigatedTo(NavigationEventArgs e)
11: {
12: base.OnNavigatedTo(e);
13: if (isFirstIn)
14: {
15: //若為True,則頁面為第一次進入
16: //自定義初始化處理.....
17: //將isFirstIn改為False
18: isFirstIn = false;
19: }
20: else {
21: //不是第一次進入
22: //相對應的處理
23: }
24: }
如此一來就可以利用簡單的判斷式來偵測程式頁面是否為第一次進入。
References : SUKI 想出來的辦法...
文章中的敘述如有觀念不正確錯誤的部分,歡迎告知指正 謝謝
轉載請註明出處,並且附上本篇文章網址 ! 感謝。