사용자가 드롭 다운 목록에서 항목을 선택할 수있는보기 모델 (MEF 사용)로 제어되는보기가 있습니다. 사용자가 선택한 각 항목은 영역으로 정의 된 탭 컨트롤을 채 웁니다. 뷰 모델, 뷰를 인스턴스화 그것을보기 모델을 지정하고이 지역에 추가 :이 모두 UI 관점에서 잘 작동보기를 추가해도 MEF 가져 오기 문이 호출되지 않습니다.
ProjectDetailView view = new ProjectDetailView();
ProjectDetailViewModel viewModel = new ProjectDetailViewModel();
viewModel.CurrentProject = project;
view.DataContext = viewModel;
RegionManager.Regions["SelectedItemsRegion"].Add(view);
합니다. 그러나 프로젝트 세부 뷰 모델에는 이벤트를 게시하기위한 EventAggregator를 수신하기 위해 [Import] 문이 있습니다.
[Import]
public IEventAggregator EventAggregator { get; set; }
난 단지 지역에 뷰를 추가하고 요청이 특정 URI를 탐색하고 있지 않다 때문에, 상기 조성물이 발생하지 않는다 (또는 적어도가 표시되지 않습니다) EventAggregator 그래서 항상 null입니다. 이 동적으로 추가 된 뷰를 요청 된 클래스를 가져 오는 프로세스로 이동하려면 어떻게해야합니까? 특정보기에서 호출 할 수있는 작성 방법이있어 문제가 해결됩니까?
최근에 동일한 문제가 발생했습니다. RegisterViewWithRegion에서 .Add로 코드를 변경했지만 [가져 오기]가 만족스럽지 않다는 것을 알았습니다. 또한 결코 호출되지 않는 IPartImportsSatisfiedNotification 인터페이스를 구현하려고했습니다. 누구나 이것에 대한 업데이트가 있습니까? –