/// <include file='doc\TemplateEditingFrame.uex' path='docs/doc[@for="TemplateEditingFrame.Dispose"]/*' /> public void Dispose() { if ((owner != null) && (owner.InTemplateMode)) { owner.ExitTemplateMode(/*fSwitchingTemplates*/ false, /*fNested*/ false, /*fSave*/ false); } ReleaseParentElement(); verb = null; }
/// <include file='doc\TemplatedControlDesigner.uex' path='docs/doc[@for="TemplatedControlDesigner.ExitNestedTemplates"]/*' /> /// <devdoc> /// This method ensures that for a particular templated control designer when exiting /// its template mode handles nested templates (if any). This is done by exiting the /// inner most template frames first before exiting itself. Inside-Out Model. /// </devdoc> private void ExitNestedTemplates(bool fSave) { try { IComponent component = Component; IDesignerHost host = (IDesignerHost)component.Site.GetService(typeof(IDesignerHost)); ControlCollection children = ((Control)component).Controls; for (int i = 0; i < children.Count; i++) { IDesigner designer = host.GetDesigner((IComponent)children[i]); if (designer is TemplatedControlDesigner) { TemplatedControlDesigner innerDesigner = (TemplatedControlDesigner)designer; if (innerDesigner.InTemplateMode) { innerDesigner.ExitTemplateMode(/*fSwitchingTemplates*/ false, /*fNested*/ true, /*fSave*/ fSave); } } } } catch (Exception ex) { Debug.Fail(ex.ToString()); } }