Перейдите на страницу в ShellPage.xaml.cs вызвало исключение - PullRequest
0 голосов
/ 11 октября 2019

Я использую 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. Как справиться с этим и перейти на страницу, спасибо.

1 Ответ

1 голос
/ 12 октября 2019

Перейдите на страницу в ShellPage.xaml.cs, вызвавшей исключение

Проблема в том, что NetworkChanged вызывается в unithithread, но метод Navigate нуждается в среде uithread. Поэтому, пожалуйста, вызовите Dispatcher в обработчике событий NetworkChanged.

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