Hi Julie,
In my opinion, the registration of the ChildWindow type should not be in the constructor of that same type. Based on my understanding, by doing this theChildWindow type would be registered again each time it's constructed, which can lead to unexpected behaviors. If theChildWindow class is defined in the Shell project then you can register it during the bootstrapping process, for example in theConfigureContainer method of your Bootstrapper class. On the other hand, if the class is defined in a module, you can register it in itsInitialize method.
Based on my understanding, even if you are retrieving the ChildWindow from the container and setting its RegionManager each time the event is raised, it should not generate any problems in your scenario. As you are registering theChildWindow type as a singleton (using the ContainerControlledLifetimeManager) each time you resolve it from the container you are obtaining the same instance ofChildWindow. Then, you are setting the same RegionManagerand showing the same ChildWindow than before.
However, if you are planing to use always the same ChildWindow for the wizard, in my opinion it would be a cleaner approach to obtain the ChildWindow from the container and setting its RegionManager only once, for example, in the constructor of the ShellViewModel.
I hope this helps,
Damian Cherubini
http://blogs.southworks.net/dcherubini