diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyGrid.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyGrid.cs index 4191c424..b9239c63 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyGrid.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyGrid.cs @@ -495,5 +495,32 @@ namespace Microsoft.Windows.Controls.PropertyGrid } #endregion //Methods + + #region Events + + public static readonly RoutedEvent PropertyValueChangedEvent = EventManager.RegisterRoutedEvent("PropertyValueChanged", RoutingStrategy.Bubble, typeof(PropertyValueChangedEventHandler), typeof(PropertyGrid)); + public event PropertyValueChangedEventHandler PropertyValueChanged + { + add { AddHandler(PropertyValueChangedEvent, value); } + remove { RemoveHandler(PropertyValueChangedEvent, value); } + } + + //TODO: add SelectedPropertyItemChanged event + + #endregion + } + + public delegate void PropertyValueChangedEventHandler(object sender, PropertyValueChangedEventArgs e); + public class PropertyValueChangedEventArgs : RoutedEventArgs + { + public object NewValue { get; set; } + public object OldValue { get; set; } + + public PropertyValueChangedEventArgs(RoutedEvent routedEvent, object source, object oldValue, object newValue) + : base(routedEvent, source) + { + NewValue = newValue; + OldValue = oldValue; + } } } diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyItem.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyItem.cs index d0981435..d3bd02a0 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyItem.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyItem.cs @@ -285,7 +285,8 @@ namespace Microsoft.Windows.Controls.PropertyGrid protected virtual void OnValueChanged(object oldValue, object newValue) { - // TODO: Add your property changed side-effects. Descendants can override as well. + if (IsInitialized) + RaiseEvent(new PropertyValueChangedEventArgs(PropertyGrid.PropertyValueChangedEvent, this, oldValue, newValue)); } #endregion //Value @@ -335,6 +336,12 @@ 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)