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

I've added a view to a region. Now I want to remove the view from the region from an event of the view

我从 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"

您仅将 RegisterViewWithRegion 用于视图发现场景,您希望在其中自动注入视图。您不使用它来响应按钮点击。相反,您应该使用 Region.Add 或 RequestNavigate.

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);
   }
}