Regions : Create a region

이번 샘플은 Prism에서 UI Control을 위한 라이브러리를 지원한다는것을 보여주기 위함인데 sample이 너무 simple하다. 하다못해, 버튼하나 누르면 구현부로 인해 UI가 변경되는것을 보여주는 형식이라도 되야하는데, 그냥 초기에 설정하고 바뀌는것은 하나도 없다. 이로 인해 여기서 Regions라는 기능을 확실하게 확인하기는 어렵지만 설정하는 부분에 대한 개념은 이해할 수 있으므로 코드를 보도록 하자.

우선, Regions 라는 기능을 이해하기 이전에, 이전 챕터에서 보여줬던 Bootstrapper라는 구현부가 바로 등장하게 된다. 이전 챕터에서는 PrismBootStrapper를 상속한 Bootstrapper를 App.xaml에서 Onstatup을 오버라이딩한 곳에서 동적으로 생성하여 시작하였다.

그러나 이 Bootstrapper는 계속 상속관계를 확인하면

Application -> PrismApplicationBase -> PrismApplication -> BootStrapper

이므로 여기서는 App.cs가 PrismApplication을 상속하여 구현되어 있으므로 Base Class가 Application이므로 프로그램의 초기화에 아무런 문제가 없다.

또한, 이전챕터에서 확인할 수 있었던 Prism Container의 각 설정부분을 App.cs에서 바로 구현할 수 있다. 그래서 이 샘플은 Regions의 기능을 확인 할 수 있는 부분보다는 시작부의 Bootstrapper의 대한 구현부를 제대로 구현해서 이를 활용할 수있다는 것을 보여준다. 물른 상세한 설정은 샘플을 계속 확인하면 계속 나오니 이전 챕터들에 대한 개념을 확실히 알고 있어야 한다는것을 의미하고 있기도 하다.

그래서 시작(초기화)부분인 Bootstrapper은 이정도로 확인하고(계속 되는 샘플에서 계속 확인이 가능하다), Regions을 보자면,

MainWindow에서 특별한 코드를 확인할 수 있는데 이 부분이 Region을 설정한 부분이다.

Window의 클래스에 Grid UI Element가 있는데 Child로 ContentControl의 DependencyObject의 객체로 RegionManager클래스의 RegionName을 설정한것을 확인할 수 있다. (prism이 선언되어 있어야한다. xmlns:prism 선언부 확인)

즉, RegionManager이라는 DependecyObject를 이용하여 UI Element의 속성을 선언할 수있는데, 이중 Prism에서 제공하는 RegionManager가 있고 이 객체의 RegionName에 View의 Name을 설정하여, 추후 Prism Container가 동작하는 다른 구현부에서도 이 RegionName을 호출하여 View를 Control 할 수 있다.


이 챕터의 의미는 

  • View를 Region이라는 속성으로 관리할 수 있다.
  • RegionName을 설정할 수 있으므로 이름 관리가 가능하다.

여기서는 "View단에 특정 이름을 설정할 수 있다"라는 것까지만 보여주고 있다. 이후의 챕터에서 이를 이용한 UI 변경 및 Control을 보여주므로 Region이라는 개념이 있다라는 것을 기억하고 넘어가야한다.


끝.

'개발 > Prism' 카테고리의 다른 글

[Prism][WPFSample] Custom Regions  (0) 2021.07.19
[Prism][WPFSample] BootstrapperShell  (0) 2021.07.19
[Prism] WPF Sample  (0) 2021.07.19

Bootstrapper and the Shell : Create a basic bootstrapper and shell

App.xaml에 OnStartup을 오버라이딩해서 내부에 BootStrapper를 생성하여 실행한다.

해당 BootStrapper는 Prism이 제공한 PrismBootstrapper를 상속한 클래스를 호출한 것이었는데, 상속한 클래스는 아래와 같다.

즉, 각 함수들을 오버라이딩해서 필요한 부분을 확장해서 사용하라는 방식인것 같다.

 - CreateShell()은 Shell이라고 하는 각 동작단위를 생성하는 부분 같은데, 지금은 간단히 MainWindow를 등록하는것 같다.  Resolve에 MainWindow의 타입을 등록하면 아마도 초기에 해당 메인의 UI가 동작해야하는부분이 저 등록된 부분에 의해 시작되지 않을까 한다.

- RegisterTypes(...) 부분은 추후에 IContainerRegistry를 통해 PrismContainer에 등록해서 추후 컨테이너에 의해 다시 호출되어 사용될 수 있다. 이렇게 등록하고 추후 호출되어 사용되는 부분에 대한 샘플이 따로 있으니 거기서 확인하자.

 

이번은 첫 샘플이기 때문에 아마도 복잡한 내용은 없는듯 하다.

bootstrapper를 이용한 프리즘 초기화 방식과 이렇게 hello world 나오는 Window 창 띄울 수 있다. 이정도 인것 같다.


이번 쳅터의 의미는

  • Prism을 시작하는 PrismBootstrapper라는 개념
  • PrismBootStrapper에서 시작

으로 볼 수 있을것 같다.


끝.

'개발 > Prism' 카테고리의 다른 글

[Prism][WPFSample] Custom Regions  (0) 2021.07.19
[Prism][WPFSample] Regions  (0) 2021.07.19
[Prism] WPF Sample  (0) 2021.07.19

2021-07-18 기준 Prism WPF Sample을 기준으로 하나씩 분석해 보려 한다.

기본적인 사용법 이후에 Prism을 잘 사용하기 위한 방법을 확인해보려 한다.

문제는 Prism 라이브러리에 플러그인 중 

이런것이 있는데....(NOTE 참고), 플러그인 이라서 큰 문제는 안되나, 이렇게 가는게 맞는지는 모르겠다...

일단 메인을 기준으로 확인해보려 한다.

개념에 대한 설명은 사실 너무 옛날 버전들을 기준으로 Documents가 있어 그것을 보고 설명하기에는 너무 다른 내용들인것 같고, 일단은 WPF Sample 로 나온 코드를 기준으로 각 챕터별로 구분하여 확인하고자 한다. 

챕터가 무려 29번까지 있어 내용은 길어보일 수 있지만, 중복되는 내용 및 이전에 했던 챕터의 내용을 알고있다는 가정하에 다음챕터에서 활용하는 경우가 굉장히 많으므로 이를 숙지하고 넘어가야 한다.

sample URL은 https://github.com/PrismLibrary/Prism-Samples-Wpf 이며 WPF를 기준으로 설명하겠다.

끝.

'개발 > Prism' 카테고리의 다른 글

[Prism][WPFSample] Custom Regions  (0) 2021.07.19
[Prism][WPFSample] Regions  (0) 2021.07.19
[Prism][WPFSample] BootstrapperShell  (0) 2021.07.19

+ Recent posts