與MEF

2011-07-07 41 views
2

建立的PRISM意見多個實例在我的應用程序要創建使用PRISM/MEF同一視圖的多個實例與MEF

我的兩個視圖和視圖模型已經得到了PartCreationPolicy非共享,但它不會創建多個視圖。相反,它會更改已打開視圖中的內容。客戶視圖的

頂部的CustomerViewModel

//[Export(typeof(CustomerViewModel))] 
[Export] 
[PartCreationPolicy(CreationPolicy.NonShared)] 
public class CustomerViewModel : NotificationObject, INavigationAware 
{ 
    private ICustomerRepository _custRepository; 

[ViewExport("CustomerView")] 
[Export] 
[PartCreationPolicy(CreationPolicy.NonShared)] 
public partial class CustomerView : UserControl 
{ 
    public CustomerView() 
    { 
     InitializeComponent(); 

    } 

頂部這是我如何調用傳遞客戶ID的看法。

 UriQuery parameters = new UriQuery(); 
     parameters.Add("CustomerID", CurrentItem.CustomerID.ToString()); 

     _regionManager.RequestNavigate(RegionNames.MainRegion, 
             new Uri("CustomerView" + parameters.ToString(), UriKind.Relative), 
             NavigationCompleted); 

當我打電話使用ServiceLocator.GetInstance它開闢了一個新的觀點,但每次我無法通過客戶ID的看法。

  _regionManager.Regions[RegionNames.MainRegion].Add(_serviceLocator.GetInstance<CustomerView>()); 

請幫我解決這個問題。我真正想要做的是創建多個實例相同的視圖傳遞一些ID(例如客戶ID)

回答

0

您是否在ViewModel上實現了IsNavigationTarget,以便在客戶ID不匹配時返回false?

public bool IsNavigationTarget(NavigationContext navigationContext) 
    { 
     return navigationContext.Parameters["CustomerID"] == this.CustomerID.ToString(); 

    }