2011-06-15 9 views
14

wiem, że mogę dostać wszystkich zarejestrowanych widoki w regionie o:Jak uzyskać bieżący aktywny widok w regionie za pomocą PRISM?

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

i widzę tam jest następujący kod:

mRegionManager.Regions[RegionNames.MainRegionStatic].ActiveViews 

który daje listę Active View ale mój region jest podłączony do ContentControl, który zawsze ma pojedynczy ActiveView. Czy jestem źle zrozumiany, czy istnieje sposób na uzyskanie pojedynczego aktywnego widoku?

Odpowiedz

12

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

+0

Świetnie, że działało, ale jak to jest, że mamy do tego kolekcję? –

+2

bo [SingleActiveRegion] (http://msdn.microsoft.com/en-us/library/microsoft.practices.composite.presentation.regions.singleactiveregion.aspx) dziedziczy Region –

+0

Czy istnieje sposób, aby uzyskać istniejących maszyn wirtualnych za pomocą MKOl kontener (w moim przypadku DryIoc)? Próbowałem 'this == _Container.Resolve ' z 'ShellViewModel' i jest on oceniany jako 'false'. – Shimmy

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

To nie jest poprawne, ponieważ będzie ona tylko przynieść cokolwiek pogląd, że został aktywowany w pierwszej kolejności. nie jest to aktualnie aktywny/widoczny widok.

Nie można znaleźć bezpośredniego rozwiązania, które nie wymaga niestandardowej implementacji w widoku lub ViewModel.

+0

Interesujące! , ale w tym czasie było to, czego potrzebowałem. czy możesz podać więcej szczegółów? –

Powiązane problemy