Prism은 어떻게 View에서 View를 호출하는가 - ViewDiscovery
중단한 프로젝트/WPF_PrismLibrary(추후진행)2019. 2. 19. 11:12
이 내용은 ViewDiscovery에 대한 내용이다.
https://github.com/2Bbear/WindowsProgrmaDevelop/tree/master/WPF/UsingMvvmPrismLibrary/04-ViewDiscovery
참조는 04번 항목을 참조하면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 | public partial class App : PrismApplication { protected override Window CreateShell() { return Container.Resolve<MainWindow>(); } protected override void RegisterTypes(IContainerRegistry containerRegistry) { } } | cs |
app 부분을 보면 시작 화면으로 MainWindow로 해놓았다.
1 2 3 4 5 6 7 8 9 | public partial class MainWindow : Window { public MainWindow(IRegionManager regionManager) { InitializeComponent(); //view discovery regionManager.RegisterViewWithRegion("ContentRegion", typeof(ViewA)); regionManager.RegisterViewWithRegion("ContentRegion_Main",typeof(MyView)); } } | cs |
MainWindow 생성자를 확인하면 매개변수로 IRegionManager를 받고있다.
이 RegionManager로 모든 View를 관리 할 수 있게 된다.
여기서 regionManger는 응용프로그램 생성 초기 단계에서 만들어진 객체이다.
이제 이 regionManger에 View를 등록해야한다. (등록 이름, 등록할 타입view)
이후
xaml에서는 이 등록 이름으로 각 view를 호출 할 수 있게 된다.
1 2 3 4 5 6 7 8 9 10 11 | <Window x:Class="ViewDiscovery.Views.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:prism="http://prismlibrary.com/" Title="Shell" Height="350" Width="525"> <Grid> <ContentControl prism:RegionManager.RegionName="ContentRegion" /> <ContentControl prism:RegionManager.RegionName="ContentRegion_Main" /> </Grid> </Window> | cs |
이런 식으로 만들어 View가 직접적으로 View를 참조하지 못하게만들어 느슨하게 개발 할 수 있게되는 것이다... 호오.
'중단한 프로젝트 > WPF_PrismLibrary(추후진행)' 카테고리의 다른 글
Prism은 어떻게 모듈을 관리하는가 (0) | 2019.02.19 |
---|---|
Prism은 어떻게 View를 다른 View로 변경하는가 (0) | 2019.02.19 |
Prism은 어떻게 View상호작용 view를 호출하는가 (0) | 2019.02.19 |
Region이란 무엇인가 (0) | 2019.02.19 |
Prism의 구성 Bootstrapper 와 Shell (0) | 2019.02.19 |