2014-04-01 57 views
1

如何保存windows phone中的页面导航之间的值, 假设我的一个电话应用程序页面中有两个文本块,并且它们每次都包含动态更改的值,现在假设我的文本块的值为“abc”,出于某种原因,我回到上一页,现在当我回到我的页面时,我希望该文本块的值为“abc”。怎么做??保存Windows Phone中的页面导航之间的值

+0

分配文本块值。 – Jaihind

+0

@Jaihind如何做到这一点..通过代码兄弟..向我展示..谢谢 –

+0

我给一个ans。看看,让我知道如果工作与否。 – Jaihind

回答

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

有多种方法可以解决这个问题。 常见的事情是使用一个静态类,其中包含静态属性并将其绑定到您的视图。

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"];