> 백엔드 개발 > C++ > 일반 ICommand 또는 RelayCommand가 재사용 가능한 MVVM 명령에 대한 최선의 접근 방식입니까?

일반 ICommand 또는 RelayCommand가 재사용 가능한 MVVM 명령에 대한 최선의 접근 방식입니까?

Mary-Kate Olsen
풀어 주다: 2025-01-20 17:30:11
원래의
210명이 탐색했습니다.

Is a Generic ICommand or RelayCommand the Best Approach for Reusable MVVM Commands?

재사용 가능한 MVVM 구조에서 명령 구현

최근 MVVM 구현에서는 여러 명령에 대한 필요성이 대두되었습니다. 단일 ICommand 클래스를 만드는 지루한 프로세스를 완화하기 위해 대체 접근 방식이 고안되었습니다. 그러나 그 효과와 잠재적인 개선점은 아직 논의되지 않았습니다.

제안된 솔루션: 일반 ICommand

명령 생성을 통합하기 위해 대리자를 사용하여 실행 가능한 기능을 실행하고 구현하는 일반 ICommand 클래스가 도입되었습니다. 이 ICommand의 생성자에는 두 개의 대리자 메서드가 할당됩니다. 그런 다음 ICommand 메서드는 대리자 메서드를 호출합니다.

기능이 작동하는 동안 이 접근 방식이 모범 사례와 일치하는지 아니면 더 적합한 솔루션이 존재하는지에 대한 의문이 제기됩니다.

대안: RelayCommand

Karl Shifflet이 보여준 것처럼 가장 권장되는 방법 중 하나는 RelayCommand입니다. 호출 시 수행되는 작업을 정의합니다.

RelayCommand 구현 예:

<code class="language-csharp">public class RelayCommand : ICommand
{
    private readonly Predicate<object> _canExecute;
    private readonly Action<object> _execute;

    public RelayCommand(Predicate<object> canExecute, Action<object> execute)
    {
        _canExecute = canExecute;
        _execute = execute;
    }

    // ICommand 实现...

}</code>
로그인 후 복사

이 구현은 다음 예와 같이 명령 생성을 단순화합니다.

<code class="language-csharp">public class MyViewModel
{
    public ICommand DoSomethingCommand =>
        new RelayCommand(
            p => this.CanDoSomething(),
            p => this.DoSomeImportantMethod());
}</code>
로그인 후 복사

기타 리소스:

• Josh Smith의 "패턴 - MVVM 디자인 패턴을 사용한 WPF 애플리케이션"은 RelayCommand 접근 방식에 대한 추가 통찰력을 제공합니다.

위 내용은 일반 ICommand 또는 RelayCommand가 재사용 가능한 MVVM 명령에 대한 최선의 접근 방식입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿