6

我需要根据绑定的 RegionName 加载区域。有点像

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

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

4

1 回答 1

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);
于 2012-12-05T14:00:56.490 回答