public ExpandableObject(object obj, ViewContext context) { CurrentObject = obj; Context = context; ExpandedView = new CachedView(() => new TypeInspector(obj, new ViewContext { Mode = ViewMode.Expanded })); CollapsedView = new CachedView(() => new TypeInspector(obj, new ViewContext { Mode = ViewMode.Collapsed })); var views = new Container("viewModes"); var typeViewSelection = new TypeViewSelection(obj, context); context.OnTypeSwitch += OnTypeSwitch; views.Add(typeViewSelection); Content = new ExtendedExpandable(); Content.Tools.Add(views); Content.Label = new TypeNameView(CurrentObject); Content.OnExpandStateChanged += expanded => Refresh(); Add(Content); Refresh(); }
private void OnTypeSwitch(ITypeView viewer) { ExpandedView = new CachedView(() => new TypeInspector(CurrentObject, new ViewContext { Mode = ViewMode.Expanded, Viewer = viewer })); CollapsedView = new CachedView(() => new TypeInspector(CurrentObject, new ViewContext { Mode = ViewMode.Collapsed, Viewer = viewer })); Refresh(); // Rebuild with new forced type }