在Composite WPF (Prism),向IRegionManger集合添加模块时,使用IRegion.Add和IRegionManager.RegisterViewWithRegion有什么区别?在Composite WPF(Prism)中,IRegion.Add和IRegionManager.RegisterViewWithRegion有什么区别?
IRegion.Add
public void Initialize()
{
_regionManager.Regions["MainRegion"].Add(new ModuleAView());
}
IRegionManager.RegisterViewWithRegion
public void Initialize()
{
_regionManager.RegisterViewWithRegion("MainRegion", typeof(ModuleAView));
}
@安德森 - 你的回答确实有帮助。我的理解是IRegion.Add和IRegionManager.RegisterViewWithRegion都创建视图的具体实例并立即将其添加到IRegionCollection。无可否认,我只是站在CAG的立足点上。你能否给我一个更详细的例子?我已经完成了QuickStart和HowTos,但是我并没有完全掌握何时使用这些示例,因为示例在Imodule.Initialize方法中使用了它们,并且在示例中它们都没有任何不同之处。 – 2009-09-14 17:54:11
不,与Add不同的是,您正在传入一个已经实例化的视图。使用RegisterViewWithRegion,您可以传入Type,Delegate或Object(实例化视图)。大多数时候,后者的超载不被使用。给我一下,我会指出你在文档的正确位置。 – 2009-09-14 18:09:05
更新了链接到文档中的最佳资源,并且我抽出了什么时候使用视图注入与视图发现的官方语言。希望它比我的描述更清晰。 – 2009-09-14 18:19:58