导航至 ShellPage.xaml.cs 中的页面导致异常

Navigate to page in ShellPage.xaml.cs caused exception

我正在使用 WindowsTemplateStudio,在 ShellPage.xaml.cs 中,我想检测用户是否更改了网络,应用程序导航到指定页面。

所以我用了

Microsoft.Toolkit.Uwp.Connectivity.NetworkHelper.Instance.NetworkChanged += Instance_NetworkChanged;
private async void Instance_NetworkChanged(object sender, EventArgs e)
{
   //NavigationService.Navigate(page);
   shellFrame.Navigate(typeof(page));
}

但这导致了System.Exception。 如何处理这个问题,并导航到一个页面,谢谢。

Navigate to page in ShellPage.xaml.cs caused exception

问题是NetworkChanged在un-uithread中调用,但是Navigate方法需要uithread环境。所以请在 NetworkChanged 事件处理程序中调用 Dispatcher

private async void Instance_NetworkChanged(object sender, EventArgs e)
{
 await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
  {
    shellFrame.Navigate(typeof(page));
  });
}