@@ -33,7 +33,7 @@ protected async override void OnLaunched(LaunchActivatedEventArgs args)
3333 // Switch to Development environment when running in DEBUG
3434 . UseEnvironment ( Environments . Development )
3535#endif
36- . UseNavigation ( RegisterRoutes )
36+ . UseNavigation ( ReactiveViewModelMappings . ViewModelMappings , RegisterRoutes )
3737 ) ;
3838 MainWindow = builder . Window ;
3939
@@ -50,17 +50,19 @@ protected async override void OnLaunched(LaunchActivatedEventArgs args)
5050 private static void RegisterRoutes ( IViewRegistry views , IRouteRegistry routes )
5151 {
5252 views . Register (
53- new ViewMap ( ViewModel : typeof ( ShellViewModel ) ) ,
54- new ViewMap < MainPage > ( ) ,
55- new ViewMap < DashboardPage > ( ) ,
56- new ViewMap < PipelinePage > ( ) ,
57- new ViewMap < LeadsPage > ( ) ,
58- new ViewMap < ContactsPage > ( )
53+ new ViewMap ( ViewModel : typeof ( ShellModel ) ) ,
54+ new ViewMap < MainPage , MainModel > ( ) ,
55+ new ViewMap < DashboardPage , DashboardModel > ( ) ,
56+ new ViewMap < PipelinePage , PipelineModel > ( ) ,
57+ new ViewMap < LeadsPage , LeadsModel > ( ) ,
58+ new ViewMap < ContactsPage , ContactsModel > ( ) ,
59+ // Deal detail: the tapped Deal is bound as the model's nav-data parameter.
60+ new DataViewMap < DealDetailPage , DealDetailModel , Deal > ( )
5961 ) ;
6062
6163 routes . Register (
6264 // The Shell hosts the extended splash screen and is the navigation root.
63- new RouteMap ( "" , View : views . FindByViewModel < ShellViewModel > ( ) ,
65+ new RouteMap ( "" , View : views . FindByViewModel < ShellModel > ( ) ,
6466 Nested :
6567 [
6668 // MainPage is the navigation shell: it owns the NavigationView / TabBar
@@ -73,7 +75,10 @@ private static void RegisterRoutes(IViewRegistry views, IRouteRegistry routes)
7375 new RouteMap ( "Pipeline" , View : views . FindByView < PipelinePage > ( ) ) ,
7476 new RouteMap ( "Leads" , View : views . FindByView < LeadsPage > ( ) ) ,
7577 new RouteMap ( "Contacts" , View : views . FindByView < ContactsPage > ( ) )
76- ] )
78+ ] ) ,
79+ // Sibling of Main (not a tab): shown full-screen in the shell's content area so
80+ // the detail isn't overlaid by the TabBar / nav pane. Back returns to the tab.
81+ new RouteMap ( "DealDetail" , View : views . FindByView < DealDetailPage > ( ) )
7782 ] )
7883 ) ;
7984 }
0 commit comments