想要在另一个页面中显示页面的结果?

时间:2012-05-10 20:15:42

标签: c# windows-phone-7

我使用独立存储创建了一个Windows Phone 7应用程序。在这个应用程序中,我使用了一个名为btnRead的按钮,一个名为txtRead的文本块和一个名为txtWrite的文本框。如果我在文本框中写入内容(txtWrite)并单击按钮(btnRead)。然后textblock(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.";
        }
    }

1 个答案:

答案 0 :(得分: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方法中那样进行读取。