From 1d92984cfe32b756cee7c65955bb492f5a109f1f Mon Sep 17 00:00:00 2001 From: brianlagunas_cp Date: Wed, 1 Feb 2012 04:58:20 +0000 Subject: [PATCH] Propertygrid: added SelectedPropertyItemChanged event. It is executed everytime a new property item is selected in the Propertygrid. --- .../PropertyGrid/Implementation/PropertyGrid.cs | 17 ++++++++++++----- .../PropertyGrid/Implementation/PropertyItem.cs | 12 ++++-------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyGrid.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyGrid.cs index b9239c63..9e99054e 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyGrid.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyGrid.cs @@ -280,8 +280,10 @@ namespace Microsoft.Windows.Controls.PropertyGrid if (oldValue != null) oldValue.IsSelected = false; - if (newValue != null) - newValue.IsSelected = true; + //if (newValue != null) + // newValue.IsSelected = true; + + RaiseEvent(new RoutedEventArgs(PropertyGrid.SelectedPropertyItemChangedEvent, newValue)); } #endregion //SelectedProperty @@ -504,10 +506,15 @@ namespace Microsoft.Windows.Controls.PropertyGrid add { AddHandler(PropertyValueChangedEvent, value); } remove { RemoveHandler(PropertyValueChangedEvent, value); } } + + public static readonly RoutedEvent SelectedPropertyItemChangedEvent = EventManager.RegisterRoutedEvent("SelectedPropertyItemChanged", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(PropertyGrid)); + public event RoutedEventHandler SelectedPropertyItemChanged + { + add { AddHandler(SelectedPropertyItemChangedEvent, value); } + remove { RemoveHandler(SelectedPropertyItemChangedEvent, value); } + } - //TODO: add SelectedPropertyItemChanged event - - #endregion + #endregion //Events } public delegate void PropertyValueChangedEventHandler(object sender, PropertyValueChangedEventArgs e); diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyItem.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyItem.cs index d3bd02a0..4faffb10 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyItem.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyItem.cs @@ -207,7 +207,7 @@ namespace Microsoft.Windows.Controls.PropertyGrid protected virtual void OnIsSelectedChanged(bool oldValue, bool newValue) { if (newValue) - PropertyGrid.SelectedProperty = this; + PropertyGrid.SelectedProperty = this; } #endregion //IsSelected @@ -286,7 +286,9 @@ namespace Microsoft.Windows.Controls.PropertyGrid protected virtual void OnValueChanged(object oldValue, object newValue) { if (IsInitialized) - RaiseEvent(new PropertyValueChangedEventArgs(PropertyGrid.PropertyValueChangedEvent, this, oldValue, newValue)); + { + PropertyGrid.RaiseEvent(new PropertyValueChangedEventArgs(PropertyGrid.PropertyValueChangedEvent, this, oldValue, newValue)); + } } #endregion //Value @@ -336,12 +338,6 @@ namespace Microsoft.Windows.Controls.PropertyGrid #endregion //Constructors - #region Events - - public static readonly RoutedEvent PropertyValueChangedEvent = PropertyGrid.PropertyValueChangedEvent.AddOwner(typeof(PropertyItem)); - - #endregion //Events - #region Event Handlers void PropertyItem_PreviewMouseDown(object sender, MouseButtonEventArgs e)