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

时间:2012-12-04 02:26:10

标签: wpf prism

我需要根据RegionName绑定加载区域。喜欢

 <ContentControl cal:RegionManager.RegionName="{Binding CustomRegionName}"
                    Grid.Column="2"/>

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

1 个答案:

答案 0 :(得分:5)

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

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

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

然后,您想在其他地方显示特定视图 注入IRegionManager然后调用

region.Activate(whichever view);