최근 실버 라이트에서 프리즘으로 작업하기 시작했습니다. EventAggregator를 사용하여 두 ViewModel간에 이벤트를 구독하고 게시하고 싶습니다. 일부 가이드에서 보았 듯이 ViewModel의 ctor는 IEventAggregator를 매개 변수로 받아 들여야합니다. 이 때문에 어떻게 내 View 항상 매개 변수가없는 ctor ViewModel 초기화하려면 어떻게하는지 찾을 수 없습니다.프리즘 MVVM - IEventAggregator를 내 ViewModel에 전달하는 방법
내 뷰 모델의 ctor에 :
MyViewModel(IEventAggregator eventAggregator)
{
// get the event....
}
내보기 :
<UserControl ....>
<UserControl.Resources>
<ViewModels:MyViewModel x:Key="MyViewModel"/>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" DataContext="{Binding Source={StaticResource MyViewModel}}">
....
<Grid/>
</UserControl>
내가보기의 ctor에의 뷰 모델을 인스턴스화하고 그것의 DataContext에 할당,하지만 내가 있어야 할 수 있습니다 내보기에있는 IEventAggregator도 얻을 수 없습니다. 하지만 이것은 아마도 IEventAggregator (또는 다른 객체! - 예를 들어 IUnityContainer)를 ViewModel에 전달하는 올바른 방법이 아닙니다.
누군가 내가 뭘 잘못하고 있다고 말할 수 있습니까?
올바른 방법입니다. – Maciek
응답 해 주셔서 감사합니다. 뷰 모델을 어디에서 인스턴스화합니까? – leeran
@ leeran88 : 답을 얻기 위해서는 더 많은 신청서가 필요합니다. 기본적으로이 시나리오에서는 뷰를 먼저 인스턴스화 한 다음 뷰 모델을 인스턴스화 한 다음 두 인스턴스와 결혼하게됩니다. 이 시나리오에서는 뷰가 IView 인터페이스도 구현해야합니다. –