It's great that you are trying Prism-v2!
Creating regions dynamically is perfectly supported and there are several ways you can achieve it depending on your scenario. Once the region is added, you can register views into it.
The most usual way is having the panel as a separate view (as long with its resources) and
attach a region to it in xaml code as usual:
Then all you have to do, is dynamically adding this view to some other region using
If for some special reason you want to do this by code, you can create a new instance of the panel, and attach a region to it as follows:
In some cases, for example if you need to create several instances of the panel, you can use
Scoped Regions so that each view gets its own
RegionManager and its regions will be registered with that RegionManager instead of with the parent
To load modules dynamically you might check:
How to: Load Modules on Demand
You might also find useful the following articles from the documentation:
How to: Add a Region
How to: Show a View in a Region Using View Injection UI Composition
How to: Show a View in a Scoped Region
UI Composition (Technical Concept)
UI Composition (Design Concept)
Hope it helps!