You could probably find a way to make the main window a singleton, but this is not the best way to achieve the desired result, and this is not a suitable situation in which you can use the singleton pattern.
If all other tool windows / dialogs are encapsulated in the main window, then an event is a much better template for communication.
Inner windows / dialogs create events to present a βrequestβ for the main window to do something. Connect the main window to these events and do the work using event handlers.
By avoiding the singleton approach, you avoid the difficulty of testing a singleton and also avoid extensive explicit circular links, where not only the main window has links to encapsulated windows / dialogs, but they, in turn, have explicit links back to the main window.
source share