В моем приложении я хочу создать несколько экземпляров одного и того же представления, используя PRISM / MEF
И мой вид, и модель вида получили PartCreationPolicy без общего доступа, но он не создает несколько видов. Вместо этого он изменяет содержимое в уже открытом представлении.
Верхняя часть представления клиента
[ViewExport("CustomerView")]
[Export]
[PartCreationPolicy(CreationPolicy.NonShared)]
public partial class CustomerView : UserControl
{
public CustomerView()
{
InitializeComponent();
}
Верхняя часть CustomerViewModel
//[Export(typeof(CustomerViewModel))]
[Export]
[PartCreationPolicy(CreationPolicy.NonShared)]
public class CustomerViewModel : NotificationObject, INavigationAware
{
private ICustomerRepository _custRepository;
Так я называю представление, передавая идентификатор клиента.
UriQuery parameters = new UriQuery();
parameters.Add("CustomerID", CurrentItem.CustomerID.ToString());
_regionManager.RequestNavigate(RegionNames.MainRegion,
new Uri("CustomerView" + parameters.ToString(), UriKind.Relative),
NavigationCompleted);
Когда я вызываю представление с помощью ServiceLocator.GetInstance, оно каждый раз открывает новое представление, но я не могу передать идентификатор клиента.
_regionManager.Regions[RegionNames.MainRegion].Add(_serviceLocator.GetInstance<CustomerView>());
Пожалуйста, помогите мне в этом. Что я хочу сделать, так это создать несколько экземпляров одного и того же представления, передавая некоторый идентификатор (например, идентификатор клиента)