Windows Phone -如何处理导航错误

本文关键字:处理 导航 错误 Phone 何处理 Windows | 更新日期: 2023-09-27 17:51:24

如果在OnNavigatedTo方法中出现导航错误,我应该如何处理?例如,在解析为整数时,未传递查询字符串参数或抛出异常。

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        string itemIdParam;
        if (NavigationContext.QueryString.TryGetValue("itemId", out itemIdParam))
        {
            int itemId = int.Parse(NavigationContext.QueryString["itemId"]);
            _item = App.MainViewModel.Items.Where(i => i.ItemId == itemId).First();
            DataContext = _item;
        }
    }

我应该捕捉它们并显示一个MessageBox还是让它们

Windows Phone -如何处理导航错误

试试:

if( this.NavigationContext.QueryString.ContainsKey("itemId"))
  {
      string s_itemid = this.NavigationContext.QueryString["itemId"];
      int i_itemid;
      bool result = Int32.TryParse(s_itemid, out i_itemid);
      if(result)
         //parsing success
      else
         //parsing error
  }
else
   //parameter doesn't exist

关于TryParse的更多信息:LINK

另一个可以减少错误的方法是定义导航uri。例如在Details中。您可以创建一个名为GetUri()的静态方法,并使用所需类型的参数。

public static Uri GetUri(int itemId){
  return new Uri(string.Format("/Details.xaml?itemId={0}", itemId), UriKind.Relative);
}

当你想导航到详细信息页面时,只需写:

NavigationService.Navigate(Details.GetUri(2));