保存数据并填充元素以返回到Universal App Windows中的页面

时间:2015-04-24 13:44:10

标签: windows-phone windows-phone-8.1 windows-8.1 win-universal-app

我对Universal Apps(Windows和Windows Phone 8.1)中的页面之间的导航有疑问。我有一个包含各种元素的页面(Slider,ComboBox等等),当我转到下一页并返回时,值会返回到初始状态,而不是我所做的更改。任何人都可以告诉我,是否可以将值保留在元素中以返回页面?如果可能,有人可以告诉我如何做到这一点?谢谢。

2 个答案:

答案 0 :(得分:0)

您可以通过在页面构造函数中将NavigationCacheMode属性的值更改为RequiredEnabled来执行此操作。您需要逐页进行此操作。

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;
    }
}

希望这有帮助。