我如何传递字符串从一个页面到另一个在这个c#应用程序使用一个按钮

本文关键字:一个 按钮 另一个 应用程序 何传递 字符串 | 更新日期: 2023-09-27 18:17:58

在我的主页。xaml: area和btu在button函数中有值,我将它们更改为字符串。

private void button1_Click(object sender, RoutedEventArgs e)        
{       
    ...
    area.ToString();
    btu.ToString();
    NavigationService.Navigate(new Uri("/SolutionPage.xaml?msg1=" + area, UriKind.Relative));
     NavigationService.Navigate(new Uri("/SolutionPage.xaml?msg2=" + btu, UriKind.Relative));
}

then,在page1中。Xaml,我有:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    base.OnNavigatedTo(e);
    string msg1 = "";
    if (NavigationContext.QueryString.TryGetValue("msg1", out msg1))
    {
        textBlock1.Text = String.Format("Area:{0}", msg1);
    }
    base.OnNavigatedTo(e);
    string msg2 = "";
    if (NavigationContext.QueryString.TryGetValue("msg2", out msg2))
    {
        textBlock2.Text = String.Format("BTU:{0}", msg2);
    }
}

问题是只有textBlock1改变(区域)。我应该怎么做传递btu.ToString()到textBlock2.text?

我如何传递字符串从一个页面到另一个在这个c#应用程序使用一个按钮

你应该创建一次导航请求,并将这两个值附加到它。

string url = string.Format("/SolutionPage.xaml?msg1={0}&msg2={1}", area.toString(), btu.toString());
NavigationService.Navigate(new Uri(url, UriKind.Relative));

在你的OnNavigatedTo中,只调用一次基本版本。

你只能打一次电话给Navigate。你需要将这两个参数都传递给导航调用,比如

new Uri( "/SolutionPAge.xaml?msg1=blah&msg2=blah", UriKind.Relative);

,然后解析它在一个调用OnNavigatedTo

如果只有一个更改,则在查询字符串中只传递其中一个值。