1
我有一個由視圖模型(使用MEF)控制的視圖,允許用戶從下拉列表中選擇項目。用戶選擇的每個項目都會填充定義爲區域的選項卡控件。視圖模型實例化視圖,賦予它一個視圖模型,然後將其添加到區域:添加視圖不會調用MEF導入語句
ProjectDetailView view = new ProjectDetailView();
ProjectDetailViewModel viewModel = new ProjectDetailViewModel();
viewModel.CurrentProject = project;
view.DataContext = viewModel;
RegionManager.Regions["SelectedItemsRegion"].Add(view);
這一切工作正常從UI的觀點。但是,項目詳細視圖模型具有[Import]語句以接收用於發佈事件的EventAggregator。
[Import]
public IEventAggregator EventAggregator { get; set; }
因爲我只添加視圖的區域和不是做請求導航到特定URI,該組合物不會發生(或至少它不會出現),因此EventAggregator總是空。我如何獲得這些動態添加的視圖來完成導入所請求的類的過程?有沒有一種組合方法,我可以調用一個特定的視圖,以便事情得到解決?
我最近遇到了同樣的問題。我將我的代碼從RegisterViewWithRegion更改爲.Add,但我發現[導入]不滿意。我也嘗試實現從未調用過的IPartImportsSatisfiedNotification接口。任何人都有這方面的更新? –