@@ -38,6 +38,8 @@ private void SetBackButtonVisibility(ListDetailsViewState? previousState = null)
3838 return ;
3939 }
4040
41+ SystemNavigationManager navigationManager = Window . Current == null ? null : SystemNavigationManager . GetForCurrentView ( ) ;
42+
4143 if ( ViewState == ListDetailsViewState . Details )
4244 {
4345 if ( BackButtonBehavior == BackButtonBehavior . Inline && _inlineBackButton != null )
@@ -47,8 +49,7 @@ private void SetBackButtonVisibility(ListDetailsViewState? previousState = null)
4749 else if ( BackButtonBehavior == BackButtonBehavior . Automatic )
4850 {
4951 // Continue to support the system back button if it is being used
50- SystemNavigationManager navigationManager = SystemNavigationManager . GetForCurrentView ( ) ;
51- if ( navigationManager . AppViewBackButtonVisibility == AppViewBackButtonVisibility . Visible )
52+ if ( navigationManager ? . AppViewBackButtonVisibility == AppViewBackButtonVisibility . Visible )
5253 {
5354 // Setting this indicates that the system back button is being used
5455 _previousSystemBackButtonVisibility = navigationManager . AppViewBackButtonVisibility ;
@@ -66,10 +67,12 @@ private void SetBackButtonVisibility(ListDetailsViewState? previousState = null)
6667 }
6768 else if ( BackButtonBehavior != BackButtonBehavior . Manual )
6869 {
69- SystemNavigationManager navigationManager = SystemNavigationManager . GetForCurrentView ( ) ;
70- _previousSystemBackButtonVisibility = navigationManager . AppViewBackButtonVisibility ;
70+ if ( navigationManager != null )
71+ {
72+ _previousSystemBackButtonVisibility = navigationManager . AppViewBackButtonVisibility ;
7173
72- navigationManager . AppViewBackButtonVisibility = AppViewBackButtonVisibility . Visible ;
74+ navigationManager . AppViewBackButtonVisibility = AppViewBackButtonVisibility . Visible ;
75+ }
7376 }
7477 }
7578 else if ( previousState == ListDetailsViewState . Details )
@@ -96,7 +99,11 @@ private void SetBackButtonVisibility(ListDetailsViewState? previousState = null)
9699 if ( _previousSystemBackButtonVisibility . HasValue )
97100 {
98101 // Make sure we show the back button if the stack can navigate back
99- SystemNavigationManager . GetForCurrentView ( ) . AppViewBackButtonVisibility = _previousSystemBackButtonVisibility . Value ;
102+ if ( navigationManager != null )
103+ {
104+ navigationManager . AppViewBackButtonVisibility = _previousSystemBackButtonVisibility . Value ;
105+ }
106+
100107 _previousSystemBackButtonVisibility = null ;
101108 }
102109 }
0 commit comments