我是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