Xaml 在Windows8 metro应用程序中导航到backpage后如何将值重新分配给文本框

Xaml 在Windows8 metro应用程序中导航到backpage后如何将值重新分配给文本框,xaml,windows-8,windows-runtime,microsoft-metro,winrt-xaml,Xaml,Windows 8,Windows Runtime,Microsoft Metro,Winrt Xaml,我在windows8 metro应用程序中创建了两个页面Page1.xaml和Page2.xaml 我在Page1.xaml中创建了一个文本框和超链接。在Page1.xaml的文本框中输入一些文本后,单击该超链接按钮。然后导航到Page2.xaml。在Page2.xaml中,我将显示在Page1.xaml文本框中输入的文本 在这里,在进入Page2.xaml之后,我单击后退按钮进入上一页Page1.xaml。在这里,我想在我之前输入的文本框中显示文本 但我在单击“后退”按钮时出错 您能为我提供在

我在windows8 metro应用程序中创建了两个页面Page1.xaml和Page2.xaml

我在Page1.xaml中创建了一个文本框和超链接。在Page1.xaml的文本框中输入一些文本后,单击该超链接按钮。然后导航到Page2.xaml。在Page2.xaml中,我将显示在Page1.xaml文本框中输入的文本

在这里,在进入Page2.xaml之后,我单击后退按钮进入上一页Page1.xaml。在这里,我想在我之前输入的文本框中显示文本

但我在单击“后退”按钮时出错

您能为我提供在Page1.xaml的文本框中显示文本的解决方案吗


提前感谢

让代码在不同脚本范围内可用的一种方法是使用WinJS名称空间

例如,在page1.js中,您将有:

(function(){
    function setText(){
        var mytext = "";

        WinJS.Namespace.define("page1", {
           text: mytext 
        });
    }
})();
在page2.js中,将文本放在该名称空间中:

(function(){

   page1.text = "page 2 text!";

})();
回到第1页,您可以稍后检索该值:

(function(){

    function setText(){
        var mytext = "";

        WinJS.Namespace.define("page1", {
           text: mytext 
        });
    }

    function getText() {
      document.querySelector("#myTextField").value = page1.text;
    }
})();

我建议对名称空间中的内容更正式一点,但这是一种方法。

您能用C#提供解决方案吗。在XAML/C中,它是标准视图模型。使每个页面使用相同的视图模型实例并绑定到相同的属性。或者如果你真的很懒,创建一个静态变量。:)