간단한 MVVM 구현에서 RelayCommand 패턴에 대한 자세한 설명
MVVM(Model-View-ViewModel) 아키텍처에서는 여러 명령을 만드는 것이 지루한 작업일 수 있습니다. 이 문제로 인해 단일 ICommand 클래스를 사용하는 단순화된 접근 방식을 비롯한 다양한 솔루션이 탄생했습니다.
단순화된 명령 구현
구현된 ICommand 클래스에는 OnExecute(void 반환)와 OnCanExecute(bool 반환)라는 두 가지 대리자 메서드가 포함되어 있습니다. 생성자에서 이러한 메서드는 매개변수로 전달됩니다. ICommand 인터페이스의 CanExecute 및 Execute 메서드는 해당 대리자 메서드를 호출합니다.
단순화된 명령의 장점
대안 탐색: RelayCommand
명령을 단순화하는 일반적인 대안은 Karl Shifflet이 시연한 RelayCommand입니다. Action
RelayCommand 구현
RelayCommand는 Predicate
RelayCommand의 장점
사용예
단순화된 명령과 RelayCommand는 ViewModel에서 비슷한 방식으로 사용할 수 있습니다.
<code>public class MyViewModel { // 简化命令 public ICommand DoSomethingCommand { get; set; } // RelayCommand public ICommand DoSomethingCommand2 { get; set; } public MyViewModel() { // 简化命令 DoSomethingCommand = new TestCommand(CanDoSomething, DoSomeImportantMethod); // RelayCommand DoSomethingCommand2 = new RelayCommand(CanDoSomething, DoSomeImportantMethod); } // ... }</code>
결론
RelayCommand는 깔끔한 솔루션을 제공하는 반면 RelayCommand는 자동 속성 변경 알림 및 매개변수 지원과 같은 추가 이점을 제공합니다. 두 가지 방법 모두 MVVM 명령 구현을 효과적으로 단순화할 수 있으므로 개발자는 상용구 코드가 아닌 애플리케이션 논리에 집중할 수 있습니다.
위 내용은 RelayCommand와 단순화된 ICommand: MVVM에 가장 적합한 것은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!