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