我是使用windsor容器和windsorboot strapper的棱镜新手。我试图在我的shell中注册我的区域,并尝试从我的模块项目添加一个视图到该区域,这是一个类的自由。但是我在初始化时从模块类中得到以下结果:
“此RegionManager不包含名称为'MainRegion'的Region。 参数名称:regionName“
此外,下面是我在shell中为我的区域编写的代码以及用于注册视图的代码。
用于创建区域的Shell Xaml 。
xmlns:Regions="clr-namespace:Microsoft.Practices.Prism.Regions;assembly=Microsoft.Practices.Prism"
<ContentControl x:Name="MainRegion"
Regions:RegionManager.RegionName="MainRegion"/>
在初始化模块时注册Module.cs类中的视图:
regionManager.AddToRegion("MainRegion", container.Resolve<myview>());
任何人都可以建议我为什么我没有在模块中接收我的区域作为容器明智我使用windsorcontainer。 Thaks。
拉扎
答案 0 :(得分:5)
很可能是因为包含该区域的视图尚未显示。只有在加载包含该区域的视图时,才会使用RegionManager注册该区域。
要解决此问题,请致电AddToRegion
而不是致电RegisterViewWithRegion
,而需要代理人来获取视图:
regionManager.RegisterViewWithRegion("MainRegion", () => container.Resolve());