@@ -83,9 +83,9 @@ public bool IsMultiPaneEnabled
8383 get => UserSettingsService . MultitaskingSettingsService . IsDualPaneEnabled && ! ( Window . Current . Bounds . Width <= 750 ) ;
8484 }
8585
86- private string navParamsLeft ;
86+ private NavigationParams navParamsLeft ;
8787
88- public string NavParamsLeft
88+ public NavigationParams NavParamsLeft
8989 {
9090 get => navParamsLeft ;
9191 set
@@ -98,9 +98,9 @@ public string NavParamsLeft
9898 }
9999 }
100100
101- private string navParamsRight ;
101+ private NavigationParams navParamsRight ;
102102
103- public string NavParamsRight
103+ public NavigationParams NavParamsRight
104104 {
105105 get => navParamsRight ;
106106 set
@@ -227,13 +227,21 @@ protected override void OnNavigatedTo(NavigationEventArgs eventArgs)
227227
228228 if ( eventArgs . Parameter is string navPath )
229229 {
230- NavParamsLeft = navPath ;
231- NavParamsRight = "Home" . GetLocalized ( ) ;
230+ NavParamsLeft = new NavigationParams { NavPath = navPath } ;
231+ NavParamsRight = new NavigationParams { NavPath = "Home" . GetLocalized ( ) } ;
232232 }
233233 if ( eventArgs . Parameter is PaneNavigationArguments paneArgs )
234234 {
235- NavParamsLeft = paneArgs . LeftPaneNavPathParam ;
236- NavParamsRight = paneArgs . RightPaneNavPathParam ;
235+ NavParamsLeft = new NavigationParams
236+ {
237+ NavPath = paneArgs . LeftPaneNavPathParam ,
238+ SelectItem = paneArgs . LeftPaneSelectItemParam
239+ } ;
240+ NavParamsRight = new NavigationParams
241+ {
242+ NavPath = paneArgs . RightPaneNavPathParam ,
243+ SelectItem = paneArgs . RightPaneSelectItemParam
244+ } ;
237245 IsRightPaneVisible = IsMultiPaneEnabled && paneArgs . RightPaneNavPathParam != null ;
238246 }
239247
@@ -242,8 +250,10 @@ protected override void OnNavigatedTo(NavigationEventArgs eventArgs)
242250 InitialPageType = typeof ( PaneHolderPage ) ,
243251 NavigationArg = new PaneNavigationArguments ( )
244252 {
245- LeftPaneNavPathParam = NavParamsLeft ,
246- RightPaneNavPathParam = IsRightPaneVisible ? NavParamsRight : null
253+ LeftPaneNavPathParam = NavParamsLeft ? . NavPath ,
254+ LeftPaneSelectItemParam = NavParamsLeft ? . SelectItem ,
255+ RightPaneNavPathParam = IsRightPaneVisible ? NavParamsRight ? . NavPath : null ,
256+ RightPaneSelectItemParam = IsRightPaneVisible ? NavParamsRight ? . SelectItem : null ,
247257 }
248258 } ;
249259 }
@@ -288,7 +298,7 @@ private void Pane_ContentChanged(object sender, TabItemArguments e)
288298 public void OpenPathInNewPane ( string path )
289299 {
290300 IsRightPaneVisible = true ;
291- NavParamsRight = path ;
301+ NavParamsRight = new NavigationParams { NavPath = path } ;
292302 }
293303
294304 private void KeyboardAccelerator_Invoked ( KeyboardAccelerator sender , KeyboardAcceleratorInvokedEventArgs args )
@@ -310,9 +320,9 @@ private void KeyboardAccelerator_Invoked(KeyboardAccelerator sender, KeyboardAcc
310320 case ( true , true , false , VirtualKey . Right ) : // ctrl + shift + "->" select right pane
311321 if ( UserSettingsService . MultitaskingSettingsService . IsDualPaneEnabled )
312322 {
313- if ( string . IsNullOrEmpty ( NavParamsRight ) )
323+ if ( string . IsNullOrEmpty ( NavParamsRight ? . NavPath ) )
314324 {
315- NavParamsRight = "Home" . GetLocalized ( ) ;
325+ NavParamsRight = new NavigationParams { NavPath = "Home" . GetLocalized ( ) } ;
316326 }
317327 IsRightPaneVisible = true ;
318328 ActivePane = PaneRight ;
@@ -326,9 +336,9 @@ private void KeyboardAccelerator_Invoked(KeyboardAccelerator sender, KeyboardAcc
326336 case ( false , true , true , VirtualKey . Add ) : // alt + shift + "+" open pane
327337 if ( UserSettingsService . MultitaskingSettingsService . IsDualPaneEnabled )
328338 {
329- if ( string . IsNullOrEmpty ( NavParamsRight ) )
339+ if ( string . IsNullOrEmpty ( NavParamsRight ? . NavPath ) )
330340 {
331- NavParamsRight = "Home" . GetLocalized ( ) ;
341+ NavParamsRight = new NavigationParams { NavPath = "Home" . GetLocalized ( ) } ;
332342 }
333343 IsRightPaneVisible = true ;
334344 }
@@ -369,6 +379,8 @@ public void Dispose()
369379 public class PaneNavigationArguments
370380 {
371381 public string LeftPaneNavPathParam { get ; set ; } = null ;
382+ public string LeftPaneSelectItemParam { get ; set ; } = null ;
372383 public string RightPaneNavPathParam { get ; set ; } = null ;
384+ public string RightPaneSelectItemParam { get ; set ; } = null ;
373385 }
374386}
0 commit comments