0

我想使用独立存储创建一个 windows phone 7 应用程序。我创建了两个名为 MainPage.xaml 和 Page1.xaml 的页面。在 MainPage.xaml 中,我创建了一个名为 button1 的按钮和一个名为 textBox1 的文本框。在 Page1.xaml 中,我创建了一个名为 listBox1 的列表框。如果我在 textBox1 中写了一些东西,当我点击 button1(在 MainPage.xaml 中)时,我需要 listBox1 来显示所有内容,无论我写到 textBox1 中,我还需要保存 listBox1 中的内容到隔离存储。任何人都可以帮忙吗???...我已经研究了很多关于这个的地方。提前感谢您的辛勤工作!!!

4

2 回答 2

0

在 MainPage.xaml.cs 中,你可以这样写:

Private void button1_click()
{
    NavigationService.Navigate(new Uri("/Page1.xaml?content="+textBox1.Text,UriKind.Relative));
}

在 Page1.xaml.cs 中你可以这样写:

using System.Collections.Generic;
using Microsoft.Phone.Controls;
using System.IO;
using System.IO.IsolatedStorage;

namespace PhoneApp1
{
public partial class Page1 : PhoneApplicationPage
{
    public static List<string> list = new List<string>();
    public Page1()
    {
        InitializeComponent();
        listBox1.ItemsSource = list;
        IsolatedStorageFile storge = IsolatedStorageFile.GetUserStoreForApplication();
        StreamWriter writer = new StreamWriter(new IsolatedStorageFileStream("/list.txt", FileMode.OpenOrCreate, storge));
        for (int i = 0; i < list.Count; i++)
        {
            writer.WriteLine(list[i]);
        }   
        writer.Close();
    }

    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        if (NavigationContext.QueryString.ContainsKey("content"))
        {
            list.Add(NavigationContext.QueryString["content"]);
        }
        base.OnNavigatedTo(e);
    }
}
}
于 2012-05-12T07:54:07.380 回答
0

在 Mainpage.xaml

私人无效 button1_click()

{

 string message = textbox1.text;

 NavigationService.Navigate(new Uri(String.format("/Page1.xaml?value1 = {0}",message), UriKind.Relative));}

在 Page1.Xaml

受保护的覆盖无效 OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)

{

 base.OnNavigatedTo(e);

 string newparameter = "";

 this.NavigationContext.QueryString.TryGetValue("value1", out newparameter);

 listbox1.items.add(newparameter.ToString());}

然后获取新参数字符串并将其保存在 isostore 中。任何帮助进一步问我。

于 2012-05-11T11:53:52.380 回答