/// <summary>
 /// Enumerate all contained sub-controls of type IStorageControl
 /// </summary>
 /// <typeparam name="M"></typeparam>
 /// <param name="controlStorage"></param>
 /// <returns></returns>
 internal static IEnumerable <IStorageControl <M> > Subcontrols <M>(this IStorageControl <M> controlStorage)
     where M : new()
 {
     return
         (from FieldInfo c in controlStorage.GetType().GetFields(BindingFlags.Instance | BindingFlags.NonPublic)
          where typeof(IStorageControl <M>).IsAssignableFrom(c.FieldType)
          select(IStorageControl <M>) c.GetValue(controlStorage));
 }