프리즘을 배우려고했지만 아주 기본적인 예제를 사용할 수 없습니다. 나는 하나의 지역을 가진 쉘을 가지고있다. 내가 모듈에서 쉘의 영역으로 뷰를로드하려고하는데 쉘이 빈 윈도우를 보여줍니다. 뷰가 쉘의 영역에로드되지 않는 이유를 알아낼 수 없습니다. 다음은 코드 파일입니다.프리즘 - 쉘에서 usercontrol의 내용을로드하지 않는 영역
부트 스트 래퍼 :
public class Bootstrapper : MefBootstrapper {
protected override DependencyObject CreateShell() {
Window shell = new MainWindow();
Application.Current.MainWindow = shell;
return shell;
}
protected override IModuleCatalog CreateModuleCatalog() {
return new ConfigurationModuleCatalog();
}
}
쉘 :
<Window x:Class="MVVMPractice.MainWindow">
<StackPanel x:Name="LayoutRoot" Background="White">
<ContentControl prism:RegionManager.RegionName="MainRegion" />
</StackPanel>
</Window>
모듈 : 지역에로드 할 수
[ModuleExport(typeof(CoreModule))]
public class CoreModule : IModule {
[Import]
public IRegionManager RegionManager { get; set; }
public void Initialize() {
var view = new WelcomeView();
RegionManager.AddToRegion("MainRegion", view);
}
}
보기 :
<UserControl x:Class="MVVMPractice.Modules.Core.WelcomeView">
<Grid Background="Red">
<TextBlock Text="Hello Prism!" FontSize="20" />
</Grid>
</UserControl>
위의보기가 셸에 나타나야하지만 그렇지 않습니다. 쉘의 지역이 위의 견해를 나타내지 않는 이유는 무엇입니까?
편집 : 모듈은 아래 주어진대로 App.config 파일을 통해 구성됩니다.
의 App.config
<configuration>
<configSections>
<section name="modules" type="Microsoft.Practices.Prism.Modularity.ModulesConfigurationSection,
Microsoft.Practices.Prism"/>
</configSections>
<modules>
<module assemblyFile="MVVMPractice.Modules.Core.dll"
moduleType="MVVMPractice.Modules.Core.CoreModule, MVVMPractice.Modules.Core.CoreModule,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
moduleName="CoreModule"
startupLoaded="true" />
</modules>
</configuration>
왜 region에 뷰를 추가하지 않고'RegionManager.RegisterViewWithRegion ("MainRegion", view)'를 호출하지 않습니까? 그것은 그것이 지역에만 추가하고 그것을 보여주지 않는 것 같습니다. –
나는 당신의 제안을 시도했지만 여전히 빈 창이 나왔다. 보기는 어떻게 든 "MainRegion"에서 끝나지 않습니다. – Jatin
그래야합니다. 코드에서 RegionManager.Regions [ "MainRegion"]을 호출하여이를 확인할 수 있습니다. 또는 로컬 윈도우에서 디버깅하여 사용할 수 있습니다. Else 당신이로드하고있는 ContentControl과 usercontrol에 너비와 높이를 설정해보십시오. –