Je n'arrive pas à transmettre les paramètres de navigation entre 2 vues dans une application WPF PRISM.PRISM MVVM Les événements INavigationAware dans le prisme ne se déclenchent pas
La structure de base de mon application est la suivante: J'ai un dossier viewmodels, à l'intérieur que j'ai un dossier pour chaque "section" de mon application simplement pour aider à structurer les choses logiquement. Commandes, projets
La même chose s'applique aux vues.
Je navigue d'une vue dans le dossier des commandes à une dans le dossier Projets.
La navigation proprement dite fonctionne et l'application atteint un point d'arrêt dans mon constructeur pour le second viewmodel, mais les méthodes de l'interface INavigationAware ne sont jamais appelées.
Je ne suis pas sûr si cela a quelque chose à voir avec les vues/viewmodels existant dans différents espaces de noms en raison des dossiers?
Voici les extraits de code importants que j'utilise:
Bootstrapper
Container.RegisterType(typeof(Object), typeof(ConfirmOrders), "Orders.ConfirmOrders");
Container.RegisterType(typeof(Object), typeof(QuotedCosts), "Projects.QuotedCosts");
Navigation Pour QuotedCosts de ConfirmOrders
NavigationParameters par = new NavigationParameters();
par.Add("ProjectID", ProjID);
_regionManager.RequestNavigate("ContentRegion", "Projects.QuotedCosts", par);
QuotedCosts viewmodel Whos Navigation Events ne sont jamais appelés
public class QuotedCostsViewModel : ViewModelBase, INavigationAware
{
private IProjectService _projectService;
private int ProjectID { get; set; }
public mProject CurrProject { get; protected set; }
public QuotedCostsViewModel(IProjectService projectService)
{
_projectService = projectService;
CurrProject = _projectService.GetProjectDetails(ProjectID);
}
public void OnNavigatedTo(NavigationContext navigationContext)
{
ProjectID = int.Parse(navigationContext.Parameters["ProjectID"].ToString());
}
public bool IsNavigationTarget(NavigationContext navigationContext)
{
return true;
}
public void OnNavigatedFrom(NavigationContext navigationContext)
{
}
}
Pourriez-vous s'il vous plaît poster le code de l'endroit où vous envoyez les paramètres à savoir Uri requête que vous utilisez .. – stylishCoder
Il est dans le deuxième bloc de code , Je n'utilise pas la requête Uri et utilise plutôt la surcharge des paramètres de navigation – ThatChris
Le code a l'air ok @ ThatChris besoin d'identifier en remplaçant les espaces de noms .. Autrement son un hit & procès problème – stylishCoder