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();
 }