WPF Prism将视图加载到Region,以前的视图不会被删除

时间:2013-09-27 10:48:00

标签: c# .net wpf prism

我是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 View,就像这样

    _regionManager.Regions[RegionNames.AppBarRegion].RequestNavigate(typeof(SgpOptions).FullName);
    
  4. 我的问题是,当第3步完成时,两个视图都出现在该区域中 我只想一次显示一个视图。

1 个答案:

答案 0 :(得分:2)

考虑以下因为 Prism的区域的工作方式不同,具体取决于它们适应的控制:

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

相反,您需要使用 ContentControl 将区域配置为 SingleActiveRegion 。此类区域仅允许一个视图同时处于活动状态。因此,在导航上一个视图时,确实会取消激活

您可以在Prism Region Overview部分找到与此相关的更多信息。