如何使用MEF容器在ViewModel中注入IRegionManager。我必須在ViewModel的Command委託中切換視圖。以下是我正在做的事情的簡要描述。我有一個名爲Product的實體,其列表顯示在一個View(ProductListView)中。在該視圖中,用戶可以選擇產品並點擊編輯按鈕。這將切換視圖並呈現一個新的視圖(ProductEditView)。對於激活了不同的看法,我需要這樣的棱鏡 - 如何使用MEF在ViewModel中導入IRegionManager使用MEF
public class ProductListVM : NotificationObject { //The Product List View Model
[Import]
public IRegionManager RegionManager { get; set; }
private void EditProduct() { //EditCommand fired from ProductListView
IRegion mainContentRegion = RegionManager.Regions["MainRegion"];
//Switch the View in "MainContent" region.
....
}
}
上面的代碼失敗的NullReferenceException爲RegionManager到IRegionManager一些參考。這似乎是合乎邏輯的,因爲上述視圖模型是由WPF通過Xaml中的DataContext屬性構造的,而DI沒有發揮作用,所以它沒有機會導入RegionManager實例。在這種情況下我們如何解決IRegionManager。