棱镜.当我用RegisterViewWithRegion显示我的视图时,OnNavigationTo不会被触发

5 prism silverlight-4.0

OnNavigatedToINavigationAware界面中的方法有点问题.

当我显示我的视图时RegionManager.RequestNavigate(myRegionName, myViewName),调用
OnNavigationTo方法.

但是当我使用时RegionManager.RegisterViewWithRegion(myRegionName, typeof(myView))
我无法得到这个场景,之后,我调用 RegionManager.RequestNavigate(myRegionName, myViewName2)了我的第二个视图,我正在调用第一个视图的OnNavigatedFrom方法.

我的问题是:
为什么OnNavigatedTo方法没有调用,当我使用时,如何显示关于视图的注意事项RegisterViewWithRegion

小智 2

使用区域管理器注册将显示向其注册的第一个视图。它永远不会调用 OnNavigedTo。基本上,要让它执行您想做的事情,您需要“导航”到您的第一个视图,而不调用 OnNavigedFrom 。去做这个:

// Register all your views into the region
// The first View that is registered is automatically activated
regionManager.Regions["myRegionName"].Add(myView);
regionManager.Regions["myRegionName"].Add(myView2);

// Deactivate the View so it doesn't show in the UI
regionManager.Regions["myRegionName"].Deactivate(regionManager.Regions["myRegionName"].ActiveViews.First());

// Now navigate to your first screen
regionManager.RequestNavigate("myRegionName", "myView");
Run Code Online (Sandbox Code Playgroud)

OnNavigedTo 应调用一次,而 OnNavieratedFrom 仅应在请求导航到另一个视图后调用。