public void Show(ObjectValue val)
        {
            value       = val;
            visualizers = new List <ValueVisualizer> (DebuggingService.GetValueVisualizers(val));
            visualizers.Sort((v1, v2) => string.Compare(v1.Name, v2.Name, StringComparison.CurrentCultureIgnoreCase));
            buttons = new List <ToggleButton> ();

            ToggleButton defaultVis = null;

            for (int i = 0; i < visualizers.Count; i++)
            {
                var button = new ToggleButton();
                button.Label    = visualizers [i].Name;
                button.Toggled += OnComboVisualizersChanged;
                if (visualizers [i].IsDefaultVisualizer(val))
                {
                    defaultVis = button;
                }
                hbox1.PackStart(button, false, false, 0);
                buttons.Add(button);
                button.Show();
            }

            if (defaultVis == null)
            {
                defaultVis = buttons [0];
            }

            defaultVis.GrabFocus();
            SetToggleState(defaultVis, true);
            UpdateVisualizer(defaultVis);

            if (val.IsReadOnly || !visualizers.Any(v => v.CanEdit(val)))
            {
                buttonCancel.Label = Gtk.Stock.Close;
                buttonSave.Hide();
            }
        }