2012-12-04 11 views
6

Potrzebuję załadować region na podstawie powiązanego RegionName. Ktoś taki jak WPF + PRISM Jak zmienić region w środowisku wykonawczym

<ContentControl cal:RegionManager.RegionName="{Binding CustomRegionName}" 
        Grid.Column="2"/> 
Wszystkie regiony są poprawnie zarejestrowane. Jeśli zmienię wartość CustomRegionName region nigdy się nie zmieni. Jak mogę to zrobić?

Odpowiedz

5

To zachowanie jest spowodowane tym, że region jest już załadowany do drzewa wizualnego. Czy możesz nieznacznie zmienić aplikację, aby zachować nazwę regionu, ale załadować wiele widoków do regionu. W ten sposób będzie można wybrać, które zdanie jest aktywny w regionie i dynamicznie zmieniać wyświetlanie kontroli zawartości przy użyciu interfejsów IRegionViewManager i IRegion tj

IRegion region = regionManager.Regions["RegionName"]; 
object view = container.Resolve<SomeView>(); 
object view2 = container.Resolve<SomeView2>(); 

region.Add(view); 
region.Add(view2); 

Więc gdzie chcesz pokazać konkretny pogląd gdzieś w przeciwnym razie Wprowadź aplikację IRegionManager, a następnie zadzwoń pod numer

region.Activate(whichever view); 
+0

dziękuję .. wygląda mi dobrze. Zamierzam to wdrożyć. –

+0

działa świetnie. dzięki wielkie –

Powiązane problemy