使用两种不同的方式处理EventNavigationArgs e

时间:2015-09-24 15:57:01

标签: c#

我正在尝试的是以2种不同的方式处理e OnNavigatedTo,具体取决于页面来自现在我有这个但是当来到其他时e.parameter保留一个空字符串[2]从上一次处理

 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
  if (lastpage != null && lastpage.SourcePageType.Equals(typeof(NewHabit))) // Checking from which page came
  {
      string[] Data = new string[2];
      Data[0] = string.Empty;
      Data[1] = string.Empty;
      Data = e.Parameter as string[];
}
   else if (lastpage != null && lastpage.SourcePageType.Equals(typeof(Calendar)))
{
       HabitButtons[pos].Days = e.Parameter as int[,];
}

1 个答案:

答案 0 :(得分:0)

在这里看不到e.Parameter的类型并不是很有帮助......但我猜您正在尝试进行无效的投射。

  

e.parameter保留前一次处理

的空字符串[2]

如果e.Parameters是处理程序方法的参数,那么很可能它是参数的新实例,而不是前一次调用的实例(除非它有些奇怪的使用{{1} }或ref参数)。

总而言之,如果out的类型为e.Parameter,那么您在尝试执行string[]时始终会出错,并且您必须创建通过手动解析e.Parameter as int[,]中的数据并创建所需的任何数据结构来获取数组。