在Windows Phone中的页面导航之间保存值

时间:2014-04-01 06:31:04

标签: c#-4.0 windows-phone-8

如何在Windows手机中的页面导航之间保存值, 假设我的一个电话应用程序页面中有两个文本块,并且每次都包含动态更改的值,现在假设我的文本块具有值" abc"由于某种原因,我回到上一页,现在当我回到我的页面时,我希望那个文本块有价值" abc"。怎么做??

3 个答案:

答案 0 :(得分:3)

有几种方法可供选择

  • IsolatedStorageSettings

保存

IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
    // txtInput is a TextBox defined in XAML.
    if (!settings.Contains("userData"))
    {
        settings.Add("userData", txtInput.Text);
    }
    else
    {
        settings["userData"] = txtInput.Text;
    }
    settings.Save();

if (IsolatedStorageSettings.ApplicationSettings.Contains("userData"))
    {
        txtDisplay.Text +=
        IsolatedStorageSettings.ApplicationSettings["userData"] as string;
    }
  • PhoneApplicationService.Current.State

PhoneApplicationService.Current.State["param"] = param

在其他页面上,我们可以像这样得到它。

var k = PhoneApplicationService.Current.State["param"];

答案 1 :(得分:2)

在App.xaml.cs中定义两个静态变量

public static valueOne = string.Empty;
public static valueTwo = string.empty;

//Assign textbox value to variable on page leaving event
protected override void OnNavigatingFrom(System.Windows.Navigation.NavigatingCancelEventArgs e)
 {
   if(!string.IsNullOrEmpty(txtBoxOne.Text))
     App.valueOne = txtBoxOne.Text;
   if(!string.IsNullOrEmpty(txtBoxTwo.Text))
     App.valueTwo = txtBoxTwo.text;
 }
//Get value from page load
protected override void OnNavigatedTo(NavigationEventArgs e)
        {
          if(!string.IsNullOrEmpty(App.valueOne))
            string valueFirst =  App.valueOne;
         if(!string.IsNullOrEmpty(App.valueTwo ))
            string valueTwo =  App.valueTwo ;
        }

答案 2 :(得分:1)

有各种方法可以解决这个问题。 常见的是使用静态类,它保存静态属性并将其绑定到View。