Да, разделение оболочки и представлений - хорошая идея.
RegionManager отвечает за добавление представления в регионы.Поэтому вы регистрируете регион в RegionManager, а также регистрируете представление в RegionManager.
Внутри оболочки вы получите что-то вроде:
<Window xmlns:Regions="clr-namespace:Microsoft.Practices.Prism.Regions;assembly=Microsoft.Practices.Prism"
xmlns:Inf="clr-namespace:YourNamespace.Infrastructure;assembly=YourNamespaceInfrastructure">
<Grid>
<ContentControl
Regions:RegionManager.RegionName="{x:Static Inf:RegionNames.MainRegion}"/>
</Grid>
</Window>
Теперь вам нужно зарегистрироватьсявид на регион, в котором он будет находиться:
public class FirstModule : IModule
{
public void Initialize( )
{
RegionManager.RegisterViewWithRegion( RegionNames.MainRegion,
typeof( MainView ) );
RegionManager.RegisterViewWithRegion( RegionNames.SecondRegion,
( ) => Container.Resolve<ISomethingViewModel>( ).View );
}
}
В примере кода показаны оба типа регистраций.Первый предназначен для первых подходов к представлению, последний - для первых подходов для модели представления.
[EDIT]
Имена областей определены в статическом классе вмодуль инфраструктуры:
namespace YourNamespace.Infrastructure
{
public static class RegionNames
{
public const string MainRegion = "MainRegion";
//...
}
}
[/ EDIT]