Поэтому я сделал перерыв и перешел с C# на VB при разработке приложений для Windows Phone 8. Это скорее тест, и у меня действительно странная проблема.
Прежде всего, мой основной сценарий заключается в том, что у меня есть страница A и страница B. Пользователь должен заполнить несколько деталей, прежде чем перейти на страницу B. Страница B будет отображаться только в том случае, если пользователь уже заполнил информацию на странице A, что-то вроде первого запуска.
Что я сделал, так это то, что я добавил этот код:
Private Sub createbtn_Click(sender As Object, e As RoutedEventArgs) Handles createbtn.Click
'...
IsoSettings.Add("AccountCreated", Nothing)
NavigationService.Navigate(New Uri("/MainMenu.xaml", UriKind.Relative))
NavigationService.RemoveBackEntry()
End Sub
После того, как пользователь нажмет кнопку «Создать учетную запись». Он будет перенаправлен на страницу B, и в дальнейшем пользователю не нужно будет заполнять информацию на странице A. «AccountCreated» — это своего рода проверка. Здесь:
Protected Overrides Sub OnNavigatedTo(e As NavigationEventArgs)
If IsoSettings.Contains("AccountCreated") Then
NavigationService.Navigate(New Uri("/MainMenu.xaml", UriKind.Relative)) 'Page B
NavigationService.RemoveBackEntry()
Else
NavigationService.Navigate(New Uri("/MainPage.xaml", UriKind.Relative)) 'Page A
End If
End Sub
Таким образом, в основном это проверяет и видит, содержит ли IsoSettings «AccountCreated», а затем переводит пользователя на страницу B, если не переводит его на страницу A. Теперь этот способ работает нормально. Нет проблем. Работает так, как я хочу.
Теперь я добавил страницу настроек. Существует одна настройка, в которой пользователь может решить, показывать страницу входа или нет. Если он «выключен», то, очевидно, он не будет отображаться, а «Вкл.» …
Я добавил это:
If IsoSettings.Contains("AccountCreated") Then
Try
Dim ShowLoginPage As Byte = CByte(AppSettings("StartupLogin"))
If ShowLoginPage = 0 Then
NavigationService.Navigate(New Uri("/LoginPage.xaml", UriKind.Relative))
NavigationService.RemoveBackEntry()
ElseIf ShowLoginPage = 1 Then
NavigationService.Navigate(New Uri("/MainMenu.xaml", UriKind.Relative))
NavigationService.RemoveBackEntry()
End If
Catch ex As KeyNotFoundException
AppSettings.Add("StartupLogin", 0)
End Try
Else
NavigationService.Navigate(New Uri("/MainPage.xaml", UriKind.Relative))
End If
Теперь здесь возникает проблема. Поэтому, когда пользователь впервые запускает это приложение. Он должен пройти через страницу А. Он заполняет информацию, а затем переходит на страницу входа. Теперь, когда пользователь входит в систему или просто закрывает приложение на странице входа и повторно открывает его, пользователи переходят на страницу A, чтобы исправить это, пользователь должен закрыть приложение и снова открыть его.
Может ли кто-нибудь прояснить для меня некоторые вещи? Спасибо!