WPF + PRISM如何在运行时更改区域

D J*_*D J 6 wpf prism

我需要根据RegionName绑定加载区域.喜欢的东西

 <ContentControl cal:RegionManager.RegionName="{Binding CustomRegionName}"
                    Grid.Column="2"/>
Run Code Online (Sandbox Code Playgroud)

所有地区都已正确注册.如果我更改CustomRegionName的值,则该区域永远不会更改.我怎样才能做到这一点?

The*_*ger 5

此行为是因为该区域已加载到可视树中.您是否可以稍微更改您的应用,以便维护区域名称,但将多个视图加载到该区域.通过这种方式,您可以选择区域中哪个视图处于活动状态,并使用IRegionViewManager和IRegion接口动态更改内容控件的显示,即

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

region.Add(view);
region.Add(view2);
Run Code Online (Sandbox Code Playgroud)

然后在其他地方显示特定视图的位置注入IRegionManager然后调用

region.Activate(whichever view);
Run Code Online (Sandbox Code Playgroud)