Silverlight MEF/棱镜银光

Silverlight MEF/棱镜银光,silverlight,prism,mef,Silverlight,Prism,Mef,我是MEF/Prism和Silverlight的新手,不知道如何将模块动态加载到ItemsControl中。我基本上希望能够将动态加载的模块交换到同一个区域容器中。如何使用MEF/PRISM进行此操作 Prism中的快速启动项目确实满足了您的要求。 它叫: 另外,请看一下此线程: 视图注入快速启动确实会在更改ListView所选项目时设置视图,因此可能也会有所帮助。承载多个控件的区域必须为ItemsControl类型: 可以通过以下代码添加和删除视图: //add view if not alr

我是MEF/Prism和Silverlight的新手,不知道如何将模块动态加载到ItemsControl中。我基本上希望能够将动态加载的模块交换到同一个区域容器中。如何使用MEF/PRISM进行此操作

Prism中的快速启动项目确实满足了您的要求。 它叫:

另外,请看一下此线程:


视图注入快速启动确实会在更改ListView所选项目时设置视图,因此可能也会有所帮助。

承载多个控件的区域必须为ItemsControl类型:

可以通过以下代码添加和删除视图:

//add view if not already present
IRegion region = this._regionManager.Regions["RegionName"];

object view = region.GetView( "ViewName" );
if ( view == null )
{
    var view = _container.ResolveSessionRelatedView<IMyView>( );
    region.Add( view, "ViewName");
}

//remove
IRegion region = this._regionManager.Regions["RegionName"];

object view = region.GetView( "ViewName" );
if ( view != null )
{
    region.Remove( view );
}

使用此代码,除了使用Prism内置导航功能外,还可以按代码添加视图。

此示例将MEF模块加载到不同的控件中。我想将多个模块加载到一个控件中。例如,我有一个菜单控件,上面有很多项,当您单击任何菜单项时,它会将特定模块加载到shell中的一个共享区域中。有可能吗?是的,我认为有可能。事实上,我计划下周在我的应用程序中实现它。我认为您可以在名为instances的容器中注册所有子窗口,然后在MenuItem上单击事件删除特定区域中的所有控件,并将正确的控件插入到位。顺便说一句,我使用复合应用程序指南。Visual Studio 2008版Prism模块未加载到区域中!区域用于显示视图,这些视图可以取消显示或插入。请您重新表述您的问题并添加更多细节,好吗顺便说一句,PRISM文档以及QuickStart和参考实现是一个很好的开始;
//add view if not already present
IRegion region = this._regionManager.Regions["RegionName"];

object view = region.GetView( "ViewName" );
if ( view == null )
{
    var view = _container.ResolveSessionRelatedView<IMyView>( );
    region.Add( view, "ViewName");
}

//remove
IRegion region = this._regionManager.Regions["RegionName"];

object view = region.GetView( "ViewName" );
if ( view != null )
{
    region.Remove( view );
}