01. ICommand

더보기

01.1 ICommand 

용도: 컨트롤 이벤트 핸들러 대체합니다.

예) 코드 비하인드 버튼 클릭 이벤트 핸들러를, ViewModel 클래스 로직에서 구현 합니다. 

 

 

01.2 동작구조

CanExecuteChanged 이벤트가 발생하면 

CanExecute( )를 통해 컨트롤이 사용가능한지 체크하고

UI 사용자 명령이 발생하면 IsEnable이 true로 활성화된 컨트롤은

Execute( ) 에 정의된 동작이 실행됩니다.

 

 

01.3 ICommand 구현 및 사용방법

ICommand 구현체를 MyCommand라고 가정하면

아래와 같이, '메서드'를 이벤트 핸들러 처럼 사용합니다.

MyCommand cmd = new MyCommand(메서드);

 

 

 

 

 

02.

더보기

02.1

 

 

 

 

02.2

public class SearchCommand : ICommand
{
    public WeatherVM VM { get; set; }

    public event EventHandler? CanExecuteChanged;

    public SearchCommand(WeatherVM vm)
    {
        VM = vm;
    }
    public bool CanExecute(object? parameter)
    {
        return true;
    }

    public void Execute(object? parameter)
    {
        _ = VM.MakeQueryAsync();
    }
}

 

 

 

 

02.3 

 

 

 


02.4

 

 

 


02.5 실행 테스트

18.2.5 WeatherApp.zip
0.26MB

 

 

 

 

 

03. Command Parameter

더보기

03.1

 

 

 

 

03.2

 

 

 

 

03.3 동작 구조

 

 

 

 

03.4 

18.3.4 WeatherApp.zip
0.27MB

 

04. Observable Collection