C#

    [C# - Prism] 프리즘 예제 13 - IActiveAwareCommands

    안녕하세요, 반나무입니다. 이번 예제는 IActiveAwareCommand를 사용하는 방법을 안내합니다. IActiveAware가 구현되면 선택된 해당 영역에서 알림을 받을 수 있습니다. "객체 인스턴스가 활성화되었는지를 정의하고 활동이 변경될 때 알림을 내보내는 인터페이스입니다." UsingCompositeCommands.Core public interface IApplicationCommands { CompositeCommand SaveCommand { get; } } public class ApplicationCommands : IApplicationCommands { // 생성자의 매개변수가 true로 이전 예제와는 다름 // true일 시 연결되지않은 독립적인 CompositeCommand가 생..

    [C# - Prism] 프리즘 예제 12 - UsingCompositeCommands

    안녕하세요, 반나무입니다. 이번 예제는 CompositeCommand를 사용하는 방법을 안내합니다. CompositeCommand는 해당 Command를 통해 다른 ViewModel들의 DelegateCommand를 동시에 사용한다고 생각하면 됩니다. 한 개의 DelegateCommand라도 CanExcute = false일 경우 CompositeCommd의 CanExcute는 false가 됩니다. 설정창을 모듈화 한다면 전체 저장 같은 거에 사용하면 딱 좋을 듯합니다. 프로젝트 구조 먼저 프로젝트 구조를 살펴보겠습니다. .Core가 들어간 프로젝트가 있어 처음에는 당황할 수 있습니다. .Core로 이름을 지은 프로젝트는 해당 프로그램에서 전반적으로 사용되는 기능들이 들어있는 프로젝트라고 생각하면 됩니다..

    [C# - Prism] 프리즘 예제 11 - UsingDelegateCommand

    안녕하세요, 반나무입니다. 이번 예제에서는 DelegateCommand를 사용하는 방법을 안내합니다. MVVM 패턴을 사용하며 Prism을 사용하지 않을 때는 ICommand를 상속받은 Command를 제작해 버튼 클릭을 제어했었습니다. Prism에서는 해당 기능을 제공하고있습니다. private bool _isEnabled; public bool IsEnabled { get { return _isEnabled; } set { SetProperty(ref _isEnabled, value); // 해당 DelegateCommand의 CanExecute를 실행한다. ExecuteDelegateCommand.RaiseCanExecuteChanged(); } } private string _updateText;..

    [C# - Prism] 프리즘 예제 10 - CustomRegistrations

    안녕하세요, 반나무입니다. 이전 08, 09번 예제에서는 View와 ViewModel을 자동으로 연결하고, 연결 조건을 커스텀하는걸 해봤는데요 이번 예제에서는 수동으로 View와 ViewModel을 연결하는 방법을 안내합니다. protected override Window CreateShell() => Container.Resolve(); protected override void RegisterTypes(IContainerRegistry containerRegistry){} // View와 ViewModel을 연결한다. protected override void ConfigureViewModelLocator() { base.ConfigureViewModelLocator(); // type / type ..

    [C# - Prism] 프리즘 예제 09 - ChangeConvention

    안녕하세요, 반나무입니다. 지난 예제에서는 View와 ViewModel을 자동으로 연결했었는데요 이번 예제에서는 자동으로 연결되는 조건을 변경하는 방법을 안내합니다. ChangeConvention 예제 // App.xaml.cs public partial class App : PrismApplication { protected override Window CreateShell() => Container.Resolve(); protected override void RegisterTypes(IContainerRegistry containerRegistry){} // View,ViewModel 자동연결 조건 변경 protected override void ConfigureViewModelLocator() {..