필자는 셸 창과 contentcontrol 인 하나의 주 영역에 일련의 탭을 가지고 있습니다. 특정 탭을 선택했을 때 필요시로드 할 4 개의 모듈도 있습니다. 따라서 tab1을 선택하면 module2를로드 할 때 moduleA를로드하려고합니다. ModuleB 등을로드하려고합니다. 응용 프로그램이 시작될 때 첫 번째 모듈이로드됩니다. 문제는 탭을 변경할 때 아무 일도 일어나지 않는다는 것입니다. 힘든 오류는 없습니다.PRISM 및 WPF 요청시 모듈을 추가하는 방법
쉘 :
public partial class Shell : RibbonWindow, IShellView
{
private readonly IRegionManager regionManager;
private readonly IModuleManager moduleManager;
public Shell(IModuleManager moduleManager)
{
this.moduleManager = moduleManager;
InitializeComponent();
}
public void ShowView()
{
this.Show();
}
private void onTabSelection(object sender, RoutedEventArgs e)
{
this.moduleManager.LoadModule("ModuleB");
}
}
부트 스트 래퍼 :
public partial class MyBootstrapper : UnityBootstrapper
{
protected override IModuleCatalog GetModuleCatalog()
{
var catalog = new ModuleCatalog();
catalog.AddModule(typeof(ModuleA)).AddModule(typeof(ModuleB));
return catalog;
}
protected override void ConfigureContainer()
{
Container.RegisterType<IShellView, Shell>();
base.ConfigureContainer();
}
protected override DependencyObject CreateShell()
{
ShellPresenter presenter = Container.Resolve<ShellPresenter>();
IShellView view = presenter.View;
view.ShowView();
return view as DependencyObject;
}
}
나는이 방법을 시도 2009 년 10 월
- 나는 WPF와 실버 라이트 프리즘 복합 응용 프로그램 지침이 버전을 사용하고 있습니다 그리고 moduleB는 내가 원하는대로로드 할 수 있기를 바란다. (나는이 주석 라인을 사용했기 때문에 여기에서 그 것을 사용했다.)
[Module(ModuleName = "ModuleB", OnDemand = true)]
public class ModuleB : IModule
{
private readonly IUnityContainer _container;
private readonly IRegionManager _regionManager;
public ModuleB(IUnityContainer container, IRegionManager regionManager)
{
_container = container;
_regionManager = regionManager;
}
public void Initialize() {
_regionManager.Regions["MainRegion"].Add(new ModuleBView());
this.RegisterViewsAndServices();
// this._regionManager.RegisterViewWithRegion(RegionNames.MainRegion,() => _container.Resolve<MissionProfileView>());
}
protected void RegisterViewsAndServices()
{
_container.RegisterType<Modules.ModuleBView>();
}
}
여기서 내가 뭘 잘못하고 있니? 어떻게해야합니까?
을하는 데 도움이 내가 거의 같은 시나리오가를 SE는. 내 질문 +1 – autonomatt