コードがあるとしましょう
protected override void OnNavigatedTo(NavigationEventArgs e)
{
var userInfo = SettingsManager.Read<User>(SettingsManager.UserInfoSetting);
if (e.NavigationMode == NavigationMode.Back && userInfo == null)
{
_mainViewModel.NavigationService.GoBack();
}
if (e.NavigationMode == NavigationMode.New && userInfo == null)
{
_mainViewModel.NavigationService.NavigateTo(new Uri(ViewModelLocator.SettingPageUrl, UriKind.Relative));
}
base.OnNavigatedTo(e);
}
ユーザーが初めてアプリケーションを実行すると、設定ページにリダイレクトされ、今のところ問題なく動作します。ユーザーが自分の情報を提供したくない場合は、戻るボタンを押すことができます。その場合、アプリケーションのメイン ページをスキップしてアプリケーションを終了します。受け取ったコードを実行するとInvalidOperationException
Cannot go back when CanGoBack is false.
メソッドは、戻るためにメソッドをGoBack()
呼び出しPhoneApplicationFrame.GoBack()
ます。