我在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/

10-10 18:15