//- ctor public PropertyGridHost(DesignSurfaceManagerExt surfaceManager) { const string _signature_ = _Name_ + @"::ctor()"; InitializeComponent(); this.Dock = DockStyle.Fill; //- the surface manager strictly tied with PropertyGridHost if( null == surfaceManager ) throw new ArgumentNullException( "surfaceManager", _signature_ + " - Exception: invalid argument (null)!" ); SurfaceManager = surfaceManager; pgrdPropertyGrid.ToolbarVisible = true; pgrdPropertyGrid.HelpVisible = true; //- the ComboBox is an OBSERVER of PropertyGridHost event: SelectedObjectsChanged //- everytime someone select a new object inside the PropertyGridHost //- | //- +---> the event PropertyGridHost.SelectedObjectsChanged is fired //- | //- the ReloadComboBox() method is called <------------+ //- //- //- //- pgrdPropertyGrid.SelectedObjectsChanged += ( object sender, System.EventArgs e ) => { ReloadComboBox(); }; //- the PropertyGridHost is an OBSERVER of ComboBox event: SelectedIndexChanged //- everytime someone select a new object inside the ComboBox //- | //- +---> the event ComboBox.SelectedIndexChanged is fired //- | //- the OrientPropertyGridTowardsObject() method is called <------------+ //- //- pgrdComboBox.SelectedIndexChanged += ( object sender, System.EventArgs e )=> { if( _bSuppressEvents ) return; OrientPropertyGridTowardsObject(); }; }
public PropertyGridHost(DesignSurfaceManagerExt surfaceManager) { InitializeComponent(); this.Dock = DockStyle.Fill; this.SurfaceManager = surfaceManager; pgrdPropertyGrid.ToolbarVisible = true; pgrdPropertyGrid.HelpVisible = true; pgrdPropertyGrid.SelectedObjectsChanged += ( object sender, System.EventArgs e ) => { ReloadComboBox(); if (pgrdPropertyGrid.SelectedObjects.Count() == 1) { this.SelectedObject = pgrdPropertyGrid.SelectedObject; if (pgrdPropertyGrid.SelectedObject is EbControl && (pgrdPropertyGrid.SelectedObject as EbControl).Parent != null) pgrdComboBox.SelectedIndex = pgrdComboBox.Items.IndexOf((pgrdPropertyGrid.SelectedObject as EbControl).Parent); } OrientPropertyGridTowardsObject(); }; pgrdPropertyGrid.PropertyValueChanged += (object s, PropertyValueChangedEventArgs e) => { if (this.SelectedObject != null && pgrdComboBox.SelectedItem != null) { if (pgrdComboBox.SelectedItem is IEbControlContainer) (pgrdComboBox.SelectedItem as IEbControlContainer).DoDesignerRefresh(); if (pgrdComboBox.SelectedItem is IEbControl) (pgrdComboBox.SelectedItem as IEbControl).DoDesignerRefresh(); } }; pgrdComboBox.SelectedIndexChanged += ( object sender, System.EventArgs e )=> { if( _bSuppressEvents ) return; if ((pgrdComboBox.Items[pgrdComboBox.SelectedIndex] is IEbControl)) this.SelectedObject = (pgrdComboBox.Items[pgrdComboBox.SelectedIndex] as IEbControl).EbControl; }; }