2012-07-12 2 views
7

의 문맥 Microsoft의 MVVM 패턴 및 해당 명령/이벤트 처리 측면을 고려하면 명령에 컨트롤 (예 : 단추)을 바인딩하고 컨트롤의 Click 이벤트에 가입하는 중입니다.가장 먼저 오는 것은 Command 또는 EventHandler입니까?

명령과 관련된 코드 또는 해당 이벤트 처리기와 연결된 코드의 처리는 어떤 동작이 먼저 발생하는지 일반적으로 규칙이 있습니까?

+0

가장 큰 질문은 두 가지를 모두하는 이유입니다. 명령을 사용하는 데있어 중요한 점은 일반적으로이를 ViewModel의 ICommand에 바인딩한다는 것이고, 이렇게하면 VM이 Button에 대해 알 필요가 없다는 것입니다. VM과 VM을 뒤섞어서 사용하는 경우입니까? VM을 사용하는 경우 버튼 이벤트에 어떻게 바인딩합니까? – stevethethread

+1

@SteveSolomon 그럼 런타임 동안 컨트롤의 동적 생성을 처리하려고합니다. MVVM 패턴을 존중하기 위해 VIEW에 필요한 모든 코드를 남기려합니다. 그래서 현재 VIEW/VIEWMODEL과 'VIEW'조작을위한 EventHandlers 사이의 연결을위한 명령 바인딩을 사용하고 있습니다. –

+0

나는 그것이 구체적이라고 생각하지 않는다. 나는 * 이벤트를 구독하는 첫 번째 것이 먼저 제기 될 것이라고 생각한다. 명령이 XAML에 연결되어 있으면 먼저 구독해야합니다. 그러나 고양이를 피하는 방법은 여러 가지가 있습니다. –

답변

5

바인딩 된 ICommand보다 먼저 EventHandler가 트리거됩니다.

+2

이것은 맞습니다. 때로는 명령을 처리하기 전에 특정보기 특정 검사를 수행하기 전에 양쪽 모두를 수행했습니다. 검사가 실패하면 이벤트가 명령을 취소 할 수 있습니다. – Rachel

+0

대단히 감사합니다. –

관련 문제