我是MEF/Prism和Silverlight的新手,我不确定如何动态地将模块加载到ItemsControl中。我基本上希望能够将动态加载的模块换成同一个区域容器。我如何使用MEF/PRISM来做到这一点?MEF/PRISM Silverlight
回答
托管多个控件必须ItemsControl
类型的区域:
<ItemsControl
x:Name="MainToolbar"
cal:RegionManager.RegionName="{x:Static inf:RegionNames.MainToolBarRegion}">
</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中的QuickStart项目可以完全满足您的要求。 这就是所谓的Modularity QuickStart :)
而且,看看这个线程:Using Prism for navigation in Wpf application
查看注射快速入门并设置的ListView选中项的改变的视图,从而可能有一定的帮助了。
本示例将MEF模块加载到不同的控件中。我想将多个模块加载到1个控件中示例我有一个菜单控件,其中有很多项目,当您单击任何菜单项时,它会将该特定模块加载到外壳中的1个共享区域中。那可能吗? – Pawan 2011-04-30 13:17:07
是的,我认为这是可能的。事实上,我打算下周在我的应用中实施它。我认为你可以将所有的子窗口注册到一个容器(命名实例)中,然后在MenuItem.Clicked事件中删除特定区域的所有控件,并插入正确的控件。顺便说一下,我使用复合应用程序指导(Visual Studio 2008 Prism的prev版本) – surfen 2011-04-30 14:48:25
- 1. Silverlight 2:Silverlight 2中的XamlParseException
- 2. Silverlight 3和Silverlight 4共存
- 3. 在Silverlight中添加样式Silverlight用户控件silverlight
- 4. Silverlight Grid
- 5. Silverlight IninParams
- 6. IE6 + silverlight
- 7. Silverlight(wp7)
- 8. Silverlight SecurityException
- 9. silverlight gradient
- 10. 在Silverlight
- 11. Silverlight HtmlPage.Window.Navigate
- 12. Silverlight VisualStateManager
- 13. silverLight childWindow
- 14. Silverlight - VisualStateManager
- 15. 在Silverlight
- 16. ComboBox Silverlight
- 17. Silverlight MediaElement
- 18. 在Silverlight
- 19. 在Silverlight
- 20. FolderBrowseDialog Silverlight
- 21. 在Silverlight
- 22. Silverlight Async
- 23. Silverlight inotifypropertychanged
- 24. Silverlight ScrollViewer
- 25. RelativeSourceBinding Silverlight
- 26. mongodb + silverlight
- 27. 在Silverlight
- 28. Silverlight CheckBox
- 29. Silverlight Sync
- 30. Silverlight AutoCompleteBox
模块未加载到“区域”!区域用于显示“视图”,它可以被“拒绝”或“注入”。你能否重新表达你的问题并添加更多细节? :)(顺便说一句,PRISM文档以及QuickStart和参考实现是一个很好的开始方式)) – AbdouMoumen 2011-05-02 10:28:31