示例#1
0
        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();
        }
示例#2
0
        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
        }