注册区域和添加区域有什么区别?我想创建一个具有动态视图的区域(一个区域中的多个视图)。需要通过组合框选择事件更改区域内容(组合框项目是视图实例)。我希望ComboBox中的更改将通过所选视图项更改该区域中的视图。我的问题是:MyViewview=newMyView();之间有什么区别?IRegion区域=newRegion();region.Name="我的地区";regionManager.Regions.Add(区域);地区。添加(视图);region.Activate(查看);至:regionManager.RegisterViewWithRegion("MyRegion",type(MyView));?使用动态区域的最佳方式是什么?如果要在同一区域显示不同的视图,则需要像第一种方法中使用的RequestNavigate或视图注入RegisterViewWithRegion将Region与视图关联起来,这样每次托管区域的控件都成为可视化树的一部分,视图将被自动解析并显示。更多信息参见msdn条目直接添加控件实例称为视图注入。注册视图类型称为视图发现。你为什么发现?Prism使用当前的ServiceLocator从容器(MEF、Unity,无论您选择什么)获取实例。然后它会自动添加视图。发现更加简化,因为所有视图都是延迟创建的(在需要时)。注入可以让你做一些高级组合(比如范围区域),但你必须更多地动手。没有正确答案,但为了学习Prism,我会选择视图发现(RegisterViewWithRegion)。为获得最佳结果,请使用常量来保存您的区域名称!您是否使用容器来注入实例?据我了解,如果使用在相关视图类型上配置了单例注册的容器,这两个过程都将返回一个现有视图。您可以在以下MSDNPrism指南章节中找到更多信息:关于这两个实现,RegisterViewWithRegion()方法与第一个实现非常相似:它基本上从容器加载视图并将其添加到区域,然后激活它。因此,每次初始化完成后,Region中使用该方法注册的最后一个View将处于活动状态。您可以在PrismLibrary解决方案上检查此行为。正如Jimmy所说,您描述的代码仅用于为每个区域加载相应的视图。然后,您将使用RequestNavigate()方法来激活已在区域中注册的所选视图。您可以在以下MSDN棱镜指南章节中找到有关此的更多信息:我希望这有帮助,问候。第一次看到type(MyView)可能是typeof(MyView)??以上是C#学习教程:在Prism中注册区域和添加区域有什么区别?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: