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

6
我需要根据绑定的区域名称加载区域。类似于以下内容:
 <ContentControl cal:RegionManager.RegionName="{Binding CustomRegionName}"
                    Grid.Column="2"/>

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

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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接