/// <summary>
 /// Recursively add a reference to the global M and to all sub-controls
 /// </summary>
 /// <typeparam name="M"></typeparam>
 /// <param name="controlStorage"></param>
 internal static void PropagateMain <M>(this IStorageControl <M> controlStorage, M main)
     where M : new()
 {
     controlStorage.Main = main;
     foreach (IStorageControl <M> subcontrol in controlStorage.Subcontrols())
     {
         subcontrol.PropagateMain(main);
     }
 }