我对Universal Apps(Windows和Windows Phone 8.1)中的页面之间的导航有疑问。我有一个包含各种元素的页面(Slider,ComboBox等等),当我转到下一页并返回时,值会返回到初始状态,而不是我所做的更改。任何人都可以告诉我,是否可以将值保留在元素中以返回页面?如果可能,有人可以告诉我如何做到这一点?谢谢。
答案 0 :(得分:0)
您可以通过在页面构造函数中将NavigationCacheMode
属性的值更改为Required
或Enabled
来执行此操作。您需要逐页进行此操作。
public MainPage()
{
this.InitializeComponent();
this.NavigationCacheMode = NavigationCacheMode.Required;
}
区别在于Enabled
它会将您的网页缓存到缓存大小,由Frame
的{{1}}属性控制。对于CacheSize
,无论缓存大小如何,它都会缓存页面。
答案 1 :(得分:0)
最好的方法是每页,在xaml中,就像这样
<Page
x:Class="Universal.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Universal"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
NavigationCacheMode="Required">
使代码可重用的另一种方法是创建基类:
public class CachedPage : Page
{
public CachedPage() : base()
{
this.NavigationCacheMode = NavigationCacheMode.Required;
}
}
希望这有帮助。