我已经为一个地区添加了一个视图。现在我想从视图的事件中删除该区域的视图

时间:2016-09-10 18:55:01

标签: wpf prism

我在Shell.xaml的代码隐藏文件中添加了一个区域: -

private IRegionManager _regionManager;

private void mnuReg_Click(object sender, RoutedEventArgs e)
{
    _regionManager = new RegionManager();
   _regionManager.RegisterViewWithRegion
      ("MainRegion", typeof(RegisterModule.Views.RegisterView));
 }///

现在我想从“RegisterView。

的点击事件中删除视图”RegisterView“

2 个答案:

答案 0 :(得分:0)

您只能将RegisterViewWithRegion用于视图发现方案,您希望在其中自动注入视图。您不要使用它来响应按钮单击。相反,您应该使用Region.Add或RequestNavigate。

答案 1 :(得分:0)

IRegionManager _regionManager = ServiceLocator.Current.GetInstance<IRegionManager>();

private void mnuReg_Click(object sender, RoutedEventArgs e)
{
   IRegion _mainRegion = _regionManager.Regions["MainRegion"]; 
   RegisterView _viewRegister = new RegisterView();
   _mainRegion.Add(_viewRegister);
}

private void mnuCloseAll_Click(object sender, RoutedEventArgs e)
{
   foreach (object view in _regionManager.Regions["MainRegion"].Views)
   {
       _regionManager.Regions["MainRegion"].Remove(view);
   }
}