寻找在模块中注册区域的方法。 我正在使用最新的PRISM和MEF。
还使用ViewExport自动填充视图 (显示在这里:: How are Views injected into the UI using PRISM and MEF?)
当弹出添加“AutoPopulateExportedViewsBehavior”错误时:
调用Attach方法后,无法设置Region属性。
MyMefBootstrapper.cs
protected override IRegionBehaviorFactory ConfigureDefaultRegionBehaviors()
{
var factory = base.ConfigureDefaultRegionBehaviors();
factory.AddIfMissing("AutoPopulateExportedViewsBehavior", typeof(AutoPopulateExportedViewsBehavior));
return factory;
}
Shell.xaml
<Window ...>
<ContentControl Name="MainRegion" cal:RegionManager.RegionName="{x:Static inf:RegionNames.MainRegion}" />
</Window>
ModuleX.xaml
<UserControl ...>
<Viewbox>
<Grid ...>
<ContentControl cal:RegionManager.RegionName="HomeScreen_LeftSide" />
<ContentControl cal:RegionManager.RegionName="HomeScreen_RightSide" />
</Grid>
</Viewbox>
</UserControl>
解决方案的要点是将一个contentcontrol添加到管理主页(来自模块)的shell。模块本身可以包含其他模块/视图。
这种架构有什么好的解决方案吗?