When you talk about a view being available to display to the user I have two possible interpretations for it.
First: You want to know if the module that has a particular view has been loaded so you can add that view to a region. In Prism, there is no way to get notification that a module has been loaded. However, you can check that at a particular
moment in your application by executing code like this:
ModuleInfo info = this.moduleManager.Modules.First<ModuleInfo>(m => m.ModuleName == "ModuleName");
if (info.State == ModuleState.Initialized)
//Views are ready
You must really consider when the above code should be used, since you might be tightly coupling your modules.
Second: You want to know when a view has been added to a region so it can be displayed. The
IRegion Views property exposes the Views.CollectionChanged
event. This event will allow you to know when a view is added/removed to a particular region. So, if you add a view into a region (for example when your module is loaded), you will receive a notification through this event and be able to act upon it.
Please let me know if this helps.