2011-06-15 12 views
14

So che posso ottenere tutti i punti di vista legale in una regione con:Come ottenere la vista attiva corrente in una regione utilizzando PRISM?

var vs = mRegionManager.Regions[RegionNames.MainRegionStatic].Views.ToList(); 

e posso vedere c'è il seguente codice:

mRegionManager.Regions[RegionNames.MainRegionStatic].ActiveViews 

che sta dando una lista di Active View, ma sto avendo la mia regione collegata a un ContentControl che ha sempre un singolo ActiveView. Ho frainteso o c'è un modo per ottenere la singola vista attiva?

risposta

12

var singleView = regionManager.Regions["MyRegion"].ActiveViews.FirstOrDefault();

+0

Grande che ha funzionato, ma com'è che abbiamo una collezione per questo? –

+2

perché [SingleActiveRegion] (http://msdn.microsoft.com/en-us/library/microsoft.practices.composite.presentation.regions.singleactiveregion.aspx) eredita Regione –

+0

C'è un modo per ottenere macchine virtuali esistenti utilizzando IoC container (nel mio caso DryIoc)? Ho provato 'this == _Container.Resolve ' da 'ShellViewModel' e ha valutato' false'. – Shimmy

5
var singleView = regionManager.Regions["MyRegion"].ActiveViews.FirstOrDefault(); 

questo non è corretto, in quanto sarà solo portare qualunque cosa vista che ha ottenuto attivata per prima. non la vista attualmente attiva/visibile.

Tuttavia, non è possibile trovare una soluzione diretta, che non implichi l'implementazione personalizzata su View o ViewModel.

+0

Interessante !! , ma al momento era quello di cui avevo bisogno. puoi dare maggiori dettagli? –

Problemi correlati