public virtual Frame GetDetailFrame(object obj, int index) { if (!framesInfoDictionary.TryGetValue(obj, out DetailFrameInfo detailFrameInfo)) { var detailView = _application.CreateDetailView(_collectionSource.ObjectSpace, Model.MasterDetailView, false, obj); var detailFrame = _application.CreateFrame(TemplateContext.NestedFrame); detailFrame.GetController <WebResetViewSettingsController>().ResetViewSettingsAction.Active.SetItemValue("PrototypeDisable", false); detailFrame.SetView(detailView); detailFrameInfo = new DetailFrameInfo { FrameIndex = index, DetailFrame = detailFrame }; framesInfoDictionary[obj] = detailFrameInfo; } else { ClearFrameInfo(detailFrameInfo); detailFrameInfo.DetailFrame.SetTemplate(null); } detailFrameInfo.DetailFrame.CreateTemplate(); return(detailFrameInfo.DetailFrame); }
protected virtual void ClearFrameInfo(DetailFrameInfo frameInfo) { frameInfo.DetailFrame.View.BreakLinksToControls(); ((IDisposable)frameInfo.DetailFrame.Template).Dispose(); }