1

我已经使用独立存储创建了一个 windows phone 7 应用程序。在这个应用程序中,我使用了一个名为 btnRead 的按钮、一个名为 txtRead 的文本块和一个名为 txtWrite 的文本框。如果我在文本框(txtWrite)中写入内容并单击按钮(btnRead)。然后文本块(txtRead)显示或保存我在文本框上写的任何内容(所有这些都是在单个 MainPage.xaml 中创建的)。现在我创建了另一个 page1.xaml 并创建了一个名为 txtShow 的文本块。但我希望 textblock(txtShow) 显示我在 MainPage.xaml 中的文本框上写的所有内容。我还上传了我的项目- https://skydrive.live.com/redir.aspx?cid=ea5aaefa4ad2307a&resid=EA5AAEFA4AD2307A!133&parid=EA5AAEFA4AD2307A!109

下面是我使用过的 MainPage.xaml.cs 源 - :

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication();
        myStore.CreateDirectory("Bookmark");

        using (var isoFileStream = new IsolatedStorageFileStream("Bookmark\\myFile.txt", FileMode.OpenOrCreate, myStore))
        {
            //Write the data
            using (var isoFileWriter = new StreamWriter(isoFileStream))
            {
                isoFileWriter.WriteLine(txtWrite.Text);
            }
        }

        try
        {
            // Specify the file path and options.
            using (var isoFileStream = new IsolatedStorageFileStream("Bookmark\\myFile.txt", FileMode.Open, myStore))
            {
                // Read the data.
                using (var isoFileReader = new StreamReader(isoFileStream))
                {
                    txtRead.Text = isoFileReader.ReadLine();
                }
            }
        }
        catch
        {
            // Handle the case when the user attempts to click the Read button first.
            txtRead.Text = "Need to create directory and the file first.";
        }
    }
4

1 回答 1

2

如果您在同一页面的 TextBlock 中显示来自 TextBox 的文本,则通过绑定更容易做到这一点

<TextBox x:Name="txtWrite"/>
<TextBlock  Text="{Binding Text, ElementName=txtWrite}"/>

要将此信息放入下一页,您可以将其放入 NavigationContext 以传递到下一页

    // Navigate to Page1 FROM MainPage 
    // This can be done in a button click event
    NavigationService.Navigate(new Uri("/Page1.xaml?text=" + txtWrite.Text, UriKind.Relative));

// Override OnNavigatedTo in Page1.xaml.cs
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    string text;
    NavigationContext.QueryString.TryGetValue("text", out text);
    txtRead.Text = text;
}

如果您喜欢使用 IsoStorage,您可以像上面在 OnNavigatedTo 方法中所做的那样进行读取。

于 2012-05-10T20:41:32.293 回答