Я хочу, чтобы каждый раз, когда пользователь потерял свое сетевое соединение, перейдите на главную страницу приложения. Я обнаружил, что DeviceNetworkInformation.NetworkAvailabilityChanged
- это то, что я ищу, но я не уверен, что именно следует добавить в качестве кода в методе и как он точно работает. Когда я добавляю обработчик событий на главной странице, чем работает для всего приложения? И могу ли я использовать этот метод NavigationService
с методом Navigate
? Я думаю, что я каким-то образом проверяю, не ли я на MainPage.xaml
, тогда я бы перешел на эту страницу, и если да, то я вызываю другой код (для настройки видимости на некоторых элементах управления и т. Д.). Это хороший способ сделать это? Могу ли я проверить код, который является активной страницей? БлагодаряWindows Phone - обработчик событий для потерянного сетевого подключения
ответ
В вашем классе App есть строка:
public PhoneApplicationFrame RootFrame { get; private set; }
Вы можете перемещаться с помощью его:
private void GoToMainPage()
{
RootFrame(new Uri("View/MainPage.xaml", UriKind.Relative));
}
Что сказал Антон правильно, как вы можете легко ссылаться на эту RootFrame из любой точки ваш код, который предоставит вам ту же возможность, что и NavigationService, из PhoneApplicationPage, и таким образом вы не ограничены только кодом внутри страницы для навигации. Хотя я думаю, что он пропустил на вызов метода .Navigate:
RootFrame.Navigate(new Uri("View/MainPage.xaml", UriKind.Relative));
А также вы хотели бы сослаться на RootFrame таким образом:
(Application.Current.RootVisual as PhoneApplicationFrame).Navigate(...)
У меня есть Msgstr "Недопустимый сквозной доступ". ошибка, и когда я использую Dispatche.BeginInvoke, мое приложение просто падает. –
С диспетчером я получил эту ошибку: «Нет поддержки фрагментов прямо сейчас» –
я сделать:
private bool InternetIsAvailable()
{
if (!NetworkInterface.GetIsNetworkAvailable())
{
//MessageBox.Show("No tienes conexión de internet.");
return false;
}
else
{
//MessageBox.Show("Tienes conexión de internet.");
return true;
}
}
но вы можете использовать этот класс NetworkChange и посмотреть способ или событие NetworkAvailabilityChanged
вы можете подписаться на Ap Файл p.xaml.cs –
Но я не могу использовать NavigationService.Navigate в App.xaml.cs. –
Взгляните на это http://stackoverflow.com/questions/3730245/silverlight-how-to-navigate-from-a-user-control-to-a-normal-page/4946688#4946688 – Waleed