private void AddPropertyControlsRecursive(Control control, IContainable contained) { Control addedControl = contained.AddTo(control); if (contained is IEditor) PropertyControls.Add(contained.Name, addedControl); if (contained is IEditorContainer) foreach (IContainable subContained in ((IEditorContainer) contained).GetContained(Page.User)) AddPropertyControlsRecursive(addedControl, subContained); }