我需要根据绑定的 RegionName 加载区域。有点像
<ContentControl cal:RegionManager.RegionName="{Binding CustomRegionName}"
Grid.Column="2"/>
所有区域均已正确注册。如果我更改 CustomRegionName 的值,则该区域永远不会改变。我怎样才能做到这一点?
此行为是因为该区域已加载到可视化树中。您能否稍微更改您的应用程序,以便您保留区域名称但将多个视图加载到该区域中。这样您就可以选择区域中哪个视图处于活动状态,并使用 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);