我如何传递字符串从一个页面到另一个在这个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?
你应该创建一次导航请求,并将这两个值附加到它。
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
如果只有一个更改,则在查询字符串中只传递其中一个值。