首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MEF/PRISM Silverlight

MEF/PRISM Silverlight
EN

Stack Overflow用户
提问于 2011-04-30 19:49:45
回答 2查看 917关注 0票数 2

我刚接触MEF/Prism和Silverlight,我不确定如何将模块动态加载到ItemsControl中。我基本上希望能够将动态加载的模块交换到相同的区域容器中。如何使用MEF/PRISM执行此操作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-03 20:28:44

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

代码语言:javascript
复制
<ItemsControl 
    x:Name="MainToolbar" 
    cal:RegionManager.RegionName="{x:Static inf:RegionNames.MainToolBarRegion}">
</ItemsControl>

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

代码语言:javascript
复制
//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内置的导航功能外,还可以通过代码添加视图。

票数 2
EN

Stack Overflow用户

发布于 2011-04-30 20:06:04

Prism中的QuickStart项目完全符合您的要求。它被称为Modularity QuickStart :)

另外,看一下这个帖子:Using Prism for navigation in Wpf application

ListView Injection QuickStart在视图选定项的更改上设置了一个视图,因此可能也会有一些帮助。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5841538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档