一般我們在撰寫Windows Store App時,很會去使用Frame.Navigate導覽至其他的頁面,但是當我們移至其他頁面後按下返回,回到原本的頁面卻發現資料遺失了!所有的控制項皆呈現最初的樣貌,這時我們就可以開啟NavigationCacheMode來保留我們原始頁面的資料唷!
本篇文章將引導您啟用NavigationCacheMode,以防Navigate導覽至其他頁面時的資料遺失。
一般我們在撰寫Windows Store App時,很會去使用Frame.Navigate導覽至其他的頁面,但是當我們移至其他頁面後按下返回,回到原本的頁面卻發現資料遺失了!所有的控制項皆呈現最初的樣貌,這時我們就可以開啟NavigationCacheMode來保留我們原始頁面的資料唷!
本篇文章將引導您啟用NavigationCacheMode,以防Navigate導覽至其他頁面時的資料遺失。
常見的問題在APP內從PageA跳至PageB再返回PageA時會發現原本的資料卻遺失了。
這對開發者來說是極嚴重的事情,對於使用者來說也會覺得 F**K 這什麼鬼爛APP...諸如此類的1顆星就從天而降。
所以我們可以透過開啟Navigation的快取功能來幫我們保留原本頁面的資料。
方法如下:
在PageA初始化時機加入以下程式碼:
1: public PageA()
2: {
3: this.InitializeComponent();
4: this.NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;
5: }
也可以在Xaml 中加入NavigationCacheMode的功能:
1: <common:LayoutAwarePage
2: x:Name="pageRoot"
3: x:Class="App1.MainPage"
4: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
5: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
6: xmlns:local="using:Vieshow"
7: xmlns:common="using:Vieshow.Common"
8: xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
9: xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
10: mc:Ignorable="d"
11: NavigationCacheMode="Enabled" >
如此一來原始頁面的資料就不會遺失囉!
Refrences: Page.NavigationCacheMode Property
文章中的敘述如有觀念不正確錯誤的部分,歡迎告知指正 謝謝
轉載請註明出處,並且附上本篇文章網址 ! 感謝。