Skip to content

Instantly share code, notes, and snippets.

@kevingosse
Created February 21, 2016 14:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kevingosse/b39718a6d5cbf6a064aa to your computer and use it in GitHub Desktop.
Save kevingosse/b39718a6d5cbf6a064aa to your computer and use it in GitHub Desktop.
public class NavigationService : IDisposable
{
public NavigationService()
{
SystemNavigationManager.GetForCurrentView().BackRequested += this.OnBackRequested;
}
public event EventHandler<BackRequestedEventArgs> BackRequested;
public void Dispose()
{
SystemNavigationManager.GetForCurrentView().BackRequested -= this.OnBackRequested;
}
private void OnBackRequested(object sender, BackRequestedEventArgs e)
{
this.BackRequested?.Invoke(sender, e);
if (!e.Handled)
{
Debug.WriteLine("Back handled by navigation service");
e.Handled = true;
this.GoBack();
}
}
private void GoBack()
{
var rootFrame = Window.Current.Content as Frame;
if (rootFrame?.CanGoBack == true)
{
rootFrame.GoBack();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment