我是一个PRISM新手,但我已经阅读了帮助文档,似乎无法找到如何实现以下(这是一个WPF应用程序)
我有一个Shell
(Window)有2个区域叫做'region1'和'region2'.在Initialize
我唯一的模块的方法中,我正在为每个区域注册相同的视图:
regionViewRegistry.RegisterViewWithRegion("Region1", typeof(View1));
regionViewRegistry.RegisterViewWithRegion("Region2", typeof(View1));
Run Code Online (Sandbox Code Playgroud)
当我运行它时,此时一切正常,因为它创建了2个单独的实例View1
,并在每个区域放置一个.
现在View1
我已经宣布了自己的区域用于注入小的子视图
<ItemsControl Name="MainRegion" cal:RegionManager.RegionName="MainRegion" />
Run Code Online (Sandbox Code Playgroud)
现在当我运行我非常简单的PRISM应用程序时,我收到以下异常消息:
"具有给定名称的区域已经注册:MainRegion"
这表明如果该视图声明了自己的区域,我不能拥有相同视图的多个实例.
它是否正确 ?
似乎是一个巨大的限制.
我希望我的应用程序是高度模块化的,并且可以让视图自己构成其他视图(通过区域)等.
或者我误读了文档?
您可以使用RegionScope创建由模块视图创建的区域的shell级别区域的分隔.您创建的没有范围的任何区域都是"全局",并且不支持在同一范围内具有两个具有相同名称的区域.
您可以在此MSDN文章中阅读有关区域范围的更多信息:http: //msdn.microsoft.com/en-us/magazine/cc785479.aspx#id0090126
归档时间: |
|
查看次数: |
5149 次 |
最近记录: |