17. WeatherApp - MVVM(2)
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 실행 테스트
03. Command Parameter
더보기
03.1
03.2
03.3 동작 구조
03.4
04. Observable Collection