2011-03-20 2 views
1

MVVM (내 경우에는 MVVM Light)을 사용할 때 앱에서 모든 이벤트를 처리하는 기본 방법은 무엇입니까? 따라서 Application_Launching, Application_Activated, Application_DeactivatedApplication_Closing과 같은 것입니다.MVVM에서 앱 이벤트를 처리하는 기본 방법

제 생각은 뷰 모델이 구독 할 수있는 각 이벤트마다 메시지를 브로드 캐스팅하는 것입니다. 다른 생각은 App.xaml.cs 이벤트에서 직접 뷰 모델에 대한 메소드를 호출하는 것입니다.

+0

나는 메신저 접근에 의지 할 것이다 – svrist

+0

svrist : 왜? 어떤 특별한 이유? –

+0

내게 메신저 접근 방식은 대부분 "깨끗한"것으로 보인다 :) 죄송합니다. 더 이상 자격이 없습니다. – svrist

답변

0

위에서 언급 한 이벤트는보기가 전혀 생성되지 않거나 해당 이벤트로 파괴되기 때문에 전혀보기와 관련이 없습니다. 그 시점은 ViewModel 코드로 진행되는 이벤트를 MVVM 방식 일 필요는 없습니다. 왜냐하면 이러한 이벤트 발생 시간에 View가 포함되어 있지 않기 때문입니다. 'Seperation of Concern'을 올바르게 구현하기 위해 MainViewModel (대부분 싱글 톤)에 4 가지 방법이 있으며 App.xaml에서 직접 호출 할 수 있습니다. 아니면 이벤트 위임자 (메신저)가 더 깨끗합니다. IsolatedStorage 나 serialization/deserialization 작업과 같은 이벤트에 대해 일반적인 작업을 수행한다고 가정합니다.

+0

내가 언급 한 이벤트에 참여한 뷰 모델이 없지만 해당 이벤트가 뷰 모델을 저장하거나 상태를로드 할 수 있습니다. 이벤트가 발생합니다. 당신이 우려의 분리에 관해서 말한 것까지, 당신은 제 질문에서 말한 것을 정확히 반복했습니다. –

0

내 모든 파일을 별도의 DLL (App.Model.dll의 모델, App.Views.dll의 뷰 등)에 보관하므로 주 부팅 런타임에 코드가 거의 없습니다. 나는 중앙 컨트롤러를 사용하고 애플 리케이션 레벨 이벤트, 중앙 설정 등을 애플 리케이션 특정입니다.

관련 문제