[C# - Prism] 프리즘 예제 17- BasicRegionNavigationC#/Prism2023. 9. 3. 12:36
Table of Contents
안녕하세요, 반나무입니다.
이번 예제는 BasicRegionNavigation예제입니다.
간단히 풀면 어떤 Region에 원하는 View를 띄워주는 예제입니다.
프로그램 구조
프로그램 구조는 다음과 같습니다.
- BasicRegionNavigation : Shell
- ModuleA : View를 Register만 하는 Module
MainWindow.xaml
ViewA와 ViewB라는 string을 CommandParameter로 넘겨줍니다.
<DockPanel LastChildFill="True">
<StackPanel Orientation="Horizontal" DockPanel.Dock="Top" Margin="5" >
<Button Command="{Binding NavigateCommand}" CommandParameter="ViewA" Margin="5">Navigate to View A</Button>
<Button Command="{Binding NavigateCommand}" CommandParameter="ViewB" Margin="5">Navigate to View B</Button>
</StackPanel>
<ContentControl prism:RegionManager.RegionName="ContentRegion" Margin="5" />
</DockPanel>
MainWindowViewModel.cs
MainWindow에서 전달받은 파라미터를 통해 ViewModel에서 ContentRegion을 Navigate합니다.
private void Navigate(string navigatePath)
{
if (navigatePath != null)
_regionManager.RequestNavigate("ContentRegion", navigatePath);
}
ModuleAModule.cs
ContainerRegistry에 Navigation으로 등록만합니다.
public class ModuleAModule : IModule
{
public void OnInitialized(IContainerProvider containerProvider)
{
}
public void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterForNavigation<ViewA>();
containerRegistry.RegisterForNavigation<ViewB>();
}
}
이번 예제를 보면 Module에서 딱히 ViewA,B를 특정한 부분에 등록한 부분은 없습니다.
containerRegistry.RegisterForNavigation에서 View를 등록만 해주면 다른 프로젝트에서도 해당 컨테이너를 사용하기 때문에 region을 Navigate하는것을 요청할 수 있다는것이 보여집니다.
반응형
'C# > Prism' 카테고리의 다른 글
[C# - Prism] 프리즘 예제 19 - NavigationParticipation (0) | 2023.09.13 |
---|---|
[C# - Prism] 프리즘 예제 18 - NavigationCallback (0) | 2023.09.04 |
[C# - Prism] 프리즘 예제 16 - RegionContext (0) | 2023.09.02 |
[C# - Prism] 프리즘 예제 15 - FilteringEvent (0) | 2023.08.27 |
[C# - Prism] 프리즘 예제 14 - UsingEventAggregator (0) | 2023.08.14 |
@반나무 :: 반나무_뿌리
3년차 WPF 개발자입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!