在棱镜中删除和添加视图会阻止它激活它

时间:2017-11-13 16:45:04

标签: wpf prism region

我有一个使用prism regionmanager的WPF应用程序。我应该在运行时将一个控件添加到已注册的视图。我从区域中删除了视图并更改了它,然后再将它添加到该区域。但是,当我想激活新添加的视图时,应用程序会挂起。

    var view = ServiceLocator.Current.GetInstance<CheckListView>();
    var views = 
   _regionManager.Regions[RegionNames.MainRegion].Views.ToList();
    var active = _regionManager.Regions[RegionNames.MainRegion].ActiveViews;
    CheckListView view2 = views.SingleOrDefault(v => v.GetType().Name == 
   "CheckListView") as CheckListView;

    _regionManager.Regions[RegionNames.MainRegion].Deactivate(view2);
    _regionManager.Regions[RegionNames.MainRegion].Remove(view2);    
      //    _regionManager.Regions[RegionNames.MainRegion].RemoveAll();   

        view.ScheduleGroup.Children.Clear();

       if(SelectedType.ToString().Equals("newview"))
        {

            var control = 
           (ServiceLocator.Current.GetInstance<BuildingCheckListView>());    
             view.ScheduleGroup.Children.Add(control);
            view.chkCombo.SelectedItem = CheckListTypeName.OfficialBuilding;

        }

        _regionManager.AddToRegion(RegionNames.MainRegion, view);
       _regionManager.Regions[RegionNames.MainRegion].Activate(view);

0 个答案:

没有答案