2

我是 WPF Prism 的新手,我的问题是这个。

  1. 我有一个区域,我注册了这样的视图

    _container.RegisterType(typeof(Object), typeof(MgpOptions),typeof(MgpOptions).FullName);
    
    _container.RegisterType(typeof(Object), typeof(SgpOptions), typeof(SgpOptions).FullName);
    
  2. 然后我像这样导航到它

    _regionManager.Regions[RegionNames.AppBarRegion].NavigationService.RequestNavigate(typeof(MgpOptions).FullName);`
    
  3. 在总和按钮单击事件上,我像这样导航到 SgOptions 视图

    _regionManager.Regions[RegionNames.AppBarRegion].RequestNavigate(typeof(SgpOptions).FullName);
    

我的问题是当第三步完成时,两个视图都出现在我只想一次显示一个视图的区域中。

4

1 回答 1

2

考虑以下因素,因为Prism 的区域根据它们所适应的控制而不同地工作:

  • 如果您使用ItemsControl,则您有一个AllActiveRegion区域类型,它基本上是一个永远不会停用其视图的区域,因此,它的所有视图都将被视为活动的。在这种情况下,导航到另一个视图不会停用前一个视图。

相反,您需要使用ContentControl将区域配置为SingleActiveRegion。这种类型的区域只允许一个视图同时处于活动状态。所以在导航之前的视图时确实会被停用

您可以在Prism 区域概述部分找到更多相关信息。

于 2013-09-30T14:32:02.980 回答