C#

    [C# - Prism] 프리즘 예제 08 - ViewModelLocator

    안녕하세요, 반나무입니다. 이번 예제는 View와 ViewModel을 연결하는 예제입니다. 핵심코드는 Window에 사용되는 아래 코드입니다. prism:ViewModelLocator.AutoWireViewModel="True" 위 코드를 사용하면 View와 ViewModel을 자동으로 연결 할 수 있습니다. 자동 연결 조건은 다음과 같습니다. ViewModels라는 Namespace를 가져야한다. 해당 View + ViewModel인 클래스명을 가져야한다. 위 조건을 만족하지 않으면 연결되지않으니 주의해야합니다. 프리즘은 어떻게 View와 ViewModel을 자동으로 연결 할 수 있는걸까요? 이어서 나오는 다음 예제에서는 View와 ViewModel을 연결하는 조건을 변경하는 방법과 내부 구현을 파악해..

    [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..