我在OnNavigatedTo
界面中的INavigationAware
方法有一些问题。
当我使用RegionManager.RequestNavigate(myRegionName, myViewName)
显示 View 时,OnNavigationTo
方法被调用。
但是当我使用RegionManager.RegisterViewWithRegion(myRegionName, typeof(myView))
时
我无法得到这种情况,然后,我打电话RegionManager.RequestNavigate(myRegionName, myViewName2)
到我的第二个 View ,我正在调用我的第一个 View 的OnNavigatedFrom方法。
我的问题是:
为什么不调用OnNavigatedTo
方法,使用RegisterViewWithRegion
时如何显示关于 View 的通知?
最佳答案
使用区域管理器进行注册将显示已向其注册的第一个 View 。它永远不会调用OnNavigatedTo。基本上,要使其执行您想做的事情,您需要“导航”到您的第一个 View 而无需调用OnNavigatedFrom。去做这个:
// 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");
OnNavigatedTo应该被调用一次,OnNavigatedFrom应该仅在您请求导航到另一个View之后才被调用。
关于silverlight-4.0 - Prism 。当我使用RegisterViewWithRegion显示 View 时,不会触发OnNavigatedTo,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6981640/