以下代码:
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
}
我正在获取statement1的输出,而它正在为statement2抛出ArgumentNullException。变量'matchid'是为两个函数全局定义的,但它不保留display()的值。
有没有办法在display()中得到matchid的值?
答案 0 :(得分:1)
一旦全局变量matchid
在OnNavigated中设置,它将保持设置状态,您应该可以在PhoneApplicationPage
类的任何实例方法中使用。您需要考虑的事项是:
matchid
之前,是否将display
指定为null,因此使用null的matchid并且不能与MessageBox一起使用,或者,display
您应该将有关来电的信息指定为display
。
顺便说一句,你可以访问OnNavigatedTo之外的NavigationContext。您不需要将其值存储在全局变量中。