无法在 OnNavigatedTo 方法外部访问 QueryString 的值
本文关键字:访问 QueryString 的值 外部 方法 OnNavigatedTo | 更新日期: 2023-09-27 18:30:52
对于以下代码:
public string matchid;
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
matchid = null;
base.OnNavigatedTo(e);
if (NavigationContext.QueryString.TryGetValue("matchid", out matchid))
{
MessageBox.Show(matchid); //statement1
}
}
public void display()
{
MessageBox.Show(matchid); //statement2
}
我正在获取语句 1 的输出,而它正在为语句 2 抛出 ArgumentNullException。变量 'matchid' 是为这两个函数全局定义的,但它不保留 display() 的值。
有什么方法可以在 display() 中获取匹配 id 的值???
一旦全局变量matchid
在 OnNavigated 中设置,它将保持设置状态,之后您应该能够在 PhoneApplicationPage
类中的任何实例方法中使用。您需要研究的事项是:
- 在调用
display
之前,您是否将matchid
分配回 null,因此请使用 null 且不能与 MessageBox 一起使用的 matchid,或者, - 在 OnNavigatedTo 中分配匹配 id 后,是否调用
display
?
应指定有关调用 display
的信息。
顺便说一句,您可以在OnNavigatedTo之外访问NavigationContext。您无需将其值存储在全局变量中。