So I have been trying to learn Prism and use it with my project. I am also trying to use the MVVM pattern. So basically, I want a experts advice or opinion on how I setup my program. I've been trying to get a View to display inside my shell on startup, and the ability to navigate from View to View. Here is my code:My BootStrapper.cs:(Initializes the Shell.)    public class EquinoxBootstrapper : UnityBootstrapper{    #region MainShell Initialization    //MainShell Initialization    protected override DependencyObject CreateShell()    {        return Container.Resolve<Views.MainShell>();    }    protected override void InitializeShell()    {        base.InitializeShell();        Application.Current.MainWindow = (Window)this.Shell;        Application.Current.MainWindow.Show();    }    #endregion    #region Containers    //Containers    protected override void ConfigureContainer()    {        base.ConfigureContainer();        #region Region Register Zone        //register views here!        //Container.RegisterType(typeof(object), typeof(Views.Splash), Splash);        Container.RegisterType(typeof(object), typeof(Views.LoginView), LoginView);        Container.RegisterType(typeof(object), typeof(Views.Dashboard), Dashboard);        Container.RegisterType(typeof(object), typeof(Views.SettingsView), SettingsView);        Container.RegisterType(typeof(object), typeof(Views.UserCreationView), UserCreationView);        #endregion    }    #endregion    #region Modules    //Modules    protected override void InitializeModules()    {        ModuleCatalog moduleCatalog = (ModuleCatalog)this.ModuleCatalog;        base.InitializeModules();    }    protected override IModuleCatalog CreateModuleCatalog()    {        return base.CreateModuleCatalog();    }    #endregion}My MainShell.xaml:(Has my ContentControl Region.)<Window x:Name=Shell     x:Class=Equinox.Views.MainShell    xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation    xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml    xmlns:d=http://schemas.microsoft.com/expression/blend/2008    xmlns:mc=http://schemas.openxmlformats.org/markup-compatibility/2006    mc:Ignorable=d    xmlns:prism=http://www.codeplex.com/prism    prism:ViewModelLocator.AutoWireViewModel=True    Title=Equinox    FontFamily=Quicksand    Height=800     Width=1200    Background=#EEF3F4    Icon=/Equinox;component/favicon.ico    WindowStartupLocation=CenterScreen><Grid>    <ContentControl prism:RegionManager.RegionName=ViewMainFrame/></Grid>My MainShellViewModel.cs:(Contains my Region Manager.)    public class MainShellViewModel : BindableBase{    #region Private Variables    //Private Variables    private readonly IRegionManager _regionManager;    #endregion    #region Public Variables    //Public Variables    public DelegateCommand<string> NavigateCommand { get; set; }    #endregion    #region Functions and Methods    //Functions and Methods    public MainShellViewModel(IRegionManager regionManager)    {        //Region Manager        _regionManager = regionManager;        NavigateCommand = new DelegateCommand<string>(Navigate);        Initialize();    }    private void Initialize()    {        //Startup View        _regionManager.RegisterViewWithRegion(ViewMainFrame, typeof(Views.Dashboard));    }    public void Navigate(string uri)    {        //Navigation        _regionManager.RequestNavigate(ViewMainFrame, uri);    }    #endregion}When I run it, the view (Dashboard) is Injected into the MainShell on Startup. Am I doing this correctly? It seems to work, but I just want to make sure that there is nothing I am missing. I plan on making buttons inside each View where I can easily navigate from view to view. If you know of a way that will fit with my already built application can you guide me in the correct direction to make Prism Navigation easier too? One last thing, the tutorial I followed had me make Containers, will that work with my navigation? I noticed some tutorials talked about Modules, is there a difference?Thanks!
Using Prism to Inject and Navigate Views?
c#;xaml