Est-il possible de faire référence à Viewmodels qui se trouve dans une bibliothèque de classes portable séparée et Views qui se trouvent dans une bibliothèque de classes portable différente?Reportez-vous à ViewModels et Views qui se trouvent dans un projet de bibliothèque de classes portable séparé.
Ma structure du projet est la suivante:
- SampleApp (Portable) -> Vues -> SecondPage.xaml
- SampleApp (Droid)
- testvm (classe Library Project) -> ViewModels -> SecondPageViewModel
En App.cs, Je me suis inscrit à la page suivante Container.RegisterTypeForNavigation<SecondPage, TestVM.ViewModels.SecondPageViewModel>();
Il a navigué à SecondPage mais le constructeur, les méthodes d'interface INavigationAware n'ont pas été appelés et les liaisons mvvm n'ont pas fonctionné.
Alors je voulais essayer la solution comme expliqué ici Getting Started with Prism’s new ViewModelLocator
Je
substituéeConfigureViewModelLocator
protected override void ConfigureViewModelLocator()
{
base.ConfigureViewModelLocator();
ViewModelLocationProvider.SetDefaultViewTypeToViewModelTypeResolver((viewType) =>
{
var viewName = viewType.FullName;
var viewAssemblyName = viewType.GetTypeInfo().Assembly.FullName;
var viewModelName = String.Format(CultureInfo.InvariantCulture, "{0}ViewModel, {1}", viewName, viewAssemblyName);
return Type.GetType(viewModelName);
});
}
Mais comment je me réfère à l'assemblée où mes viewmodels sont situés?
Lorsque vous essayez d'extraire le type de vue, qu'est-ce que 'viewName',' viewAssemblyName' et 'viewModelName'? Quel est le nom complet de votre assemblage de modèle de vue? – Haukinger
@Haukinger ** viewName **: SampleApp.Views.SecondPage, ** viewAssemblyName **: SampleApp, Version = 1.0.0.0, Culture = neutre, PublicKeyToken = null, ** viewModelName **: SampleApp.Views.SecondPageViewModel, SampleApp, Version = 1.0.0.0, Culture = neutre, PublicKeyToken = null –
@Haukinger Mon modèle de vue est situé dans la classe TestVM projet de bibliothèque, nom de l'assemblage "TestVM" –