我有一个使用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);