C#/Prism

    [C# - Prism] 프리즘 예제 07 - Modules

    안녕하세요, 반나무입니다. 이번 예제는 Module을 사용하는 5가지 방법에 대해 안내합니다. AppConfig Code Directory LoadManual Xaml Module을 사용하는 방법을 알기 전에 Module이 뭔지 부터 알아야 사용을 할 수 있겠죠? 프리즘에서 정의한 Module은 프로젝트 단위의 서비스 또는 RegionContents라고 보시면 되겠습니다. 해당 모듈들은 프로젝트 단위로 구분되어있기 때문에 한번 제작해 두었을 때 여러곳에 사용 할 수 있으며, 유지보수가 쉽다는 장점이 있습니다. 저의 경우에는 프로젝트 단위의 거대한 서비스보단 클래스 단위의 작은 기능을 많이 사용하기 때문에 대부분 RegionContents를 Module로 만들어 사용합니다. 1. AppConfig AppC..

    [C# - Prism] 프리즘 예제 06 - ViewActivationDeactivation

    안녕하세요, 반나무입니다. 이번 예제에서는 View를 Activation / Deactivation하는 기능을 안내합니다. 이런 기능을 사용할 때로 보여지는 곳은 아마 설정창안에 다양한 View를 보여주고자 할 때가 될 것 같습니다. ex) GeneralSettings, UserSettings를 구분지어 View로 보여줄 때 등 // MainWindow.xaml.cs public MainWindow(IContainerExtension container, IRegionManager regionManager) { InitializeComponent(); _container = container; _regionManager = regionManager; this.Loaded += MainWindow_Loade..

    [C# - Prism] 프리즘 예제 05 - ViewInjection

    안녕하세요, 반나무입니다. 이번 예제도 저번과 마찬가지로 MainWindow의 코드비하인드에서 작업됩니다. Prism을 공부한다는건 Prism의 Interface를 공부하는것과 마찬가지인듯 하네요 IContainerExtension Prism Container를 주입을 통해 사용하기 위해 사용됩니다. IRegionManager Region을 관리하는데 사용됩니다. 대체로 View에서 RegionManager를 통해 RegionName을 등록합니다. // MainWindow.xaml.cs IContainerExtension _container; IRegionManager _regionManager; public MainWindow(IContainerExtension container, IRegionMana..

    [C# - Prism] 프리즘 예제 04 - ViewDiscovery

    안녕하세요, 반나무입니다. 이번 예제는 Region에 해당 View를 등록하는 예제입니다. RegionManager를 담당하는 코드가 ViewModel이나 다른 클래스가아니라 코드비하인드 부분인게 좀 맘에 안드네요 IRegionMananger를 DI로 받아 사용합니다. ContentRegion에 ViewA를 등록합니다. // MainWindow.xaml.cs public partial class MainWindow : Window { public MainWindow(IRegionManager regionManager) { InitializeComponent(); //view discovery regionManager.RegisterViewWithRegion("ContentRegion", typeof(Vi..

    [C# - Prism] 프리즘 예제 03 - CustomRegions

    안녕하세요, 반나무입니다. 이번 예제는 단순히 빌드만 해서는 결과가 보이지않아 프로젝트를 따로 만들어 확인했습니다. StackPanel이나 Grid같은 다른 Control에서 Region을 사용가능하게 하는 예제입니다. 먼저 Prism에서 RegionAdapter는 4가지가 있습니다. ContentControlRegionAdapter SelectorRegionAdapter ItemsControlRegionAdapter TabControlRegionAdapter(Sliverlight만 해당) 예제에서는 StackPanelRegionAdapter를 새로 구현했으며, 해당 StackPanel에 Module를 Add하면 StackPanel디자인에 맞게 연결되어 들어갑니다. // App.xaml.cs protec..