Comment obtenir la vue active actuelle dans une région en utilisant PRISM?
var vs = mRegionManager.Regions[RegionNames.MainRegionStatic].Views.ToList();
et je peux voir qu'il y a le code suivant :
mRegionManager.Regions[RegionNames.MainRegionStatic].ActiveViews
ce qui donne une liste de vue Active, mais je fais attacher ma région à un ContentControl qui a toujours une seule vue active. Suis-je mal compris ou est-il un moyen d'obtenir la seule vue active?
3 réponses
var singleView = regionManager.Regions["MyRegion"].ActiveViews.FirstOrDefault();
var singleView = regionManager.Regions["MyRegion"].ActiveViews.FirstOrDefault();
ce n'est pas correct, car il apportera juste n'importe quelle vue qui a été activée en premier. pas actuellement actif/affichage visible.
ne peut pas trouver une solution directe cependant, qui n'implique pas d'implémentation personnalisée sur View ou ViewModel.
eh Bien, vous pourriez utiliser le NavigationService Journal. Il prend note de toute la navigation qui a lieu dans votre application. Ainsi, vous pouvez obtenir le nom de la vue comme ceci:
string name = mRegionManager.Regions[RegionNames.MainRegionStatic].NavigationService.Journal.CurrentEntry.Uri;
alors vous pouvez obtenir la vue comme ceci:
mRegionManager.Regions[RegionNames.MainRegionStatic].GetView(name);
Sweet Droit? :)