diff --git a/src/MahApps.Metro/Controls/TimePicker/TimePickerBase.cs b/src/MahApps.Metro/Controls/TimePicker/TimePickerBase.cs index 5503a21bcf..d7f64e06b3 100644 --- a/src/MahApps.Metro/Controls/TimePicker/TimePickerBase.cs +++ b/src/MahApps.Metro/Controls/TimePicker/TimePickerBase.cs @@ -162,9 +162,9 @@ protected virtual void FocusElementAfterIsDropDownOpenChanged() new PropertyMetadata(TimePartVisibility.All, OnPickerVisibilityChanged)); public static readonly RoutedEvent SelectedDateTimeChangedEvent = EventManager.RegisterRoutedEvent( - "SelectedDateTimeChanged", - RoutingStrategy.Direct, - typeof(EventHandler>), + "SelectedDateTimeChanged", + RoutingStrategy.Bubble, + typeof(RoutedPropertyChangedEventHandler), typeof(TimePickerBase)); public static readonly DependencyProperty SelectedDateTimeProperty = DependencyProperty.Register( @@ -251,7 +251,7 @@ protected TimePickerBase() /// /// Occurs when the property is changed. /// - public event EventHandler> SelectedDateTimeChanged + public event RoutedPropertyChangedEventHandler SelectedDateTimeChanged { add { AddHandler(SelectedDateTimeChangedEvent, value); } remove { RemoveHandler(SelectedDateTimeChangedEvent, value); } @@ -530,9 +530,10 @@ protected virtual string GetValueForTextBox() protected abstract void ClockSelectedTimeChanged(object sender, SelectionChangedEventArgs e); - protected virtual void OnSelectedTimeChanged(TimePickerBaseSelectionChangedEventArgs e) + protected void RaiseSelectedDateTimeChangedEvent(DateTime? oldValue, DateTime? newValue) { - RaiseEvent(e); + var args = new RoutedPropertyChangedEventArgs(oldValue, newValue) { RoutedEvent = SelectedDateTimeChangedEvent }; + this.RaiseEvent(args); } private static void OnSelectedTimeFormatChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) @@ -824,7 +825,7 @@ private static void OnSelectedDateTimeChanged(DependencyObject d, DependencyProp timePartPickerBase.SetHourPartValues((e.NewValue as DateTime?).GetValueOrDefault().TimeOfDay); - timePartPickerBase.OnSelectedTimeChanged(new TimePickerBaseSelectionChangedEventArgs(SelectedDateTimeChangedEvent, (DateTime?)e.OldValue, (DateTime?)e.NewValue)); + timePartPickerBase.RaiseSelectedDateTimeChangedEvent(e.OldValue as DateTime?, e.NewValue as DateTime?); timePartPickerBase.WriteValueToTextBox(); } diff --git a/src/MahApps.Metro/Controls/TimePicker/TimePickerBaseSelectionChangedEventArgs.cs b/src/MahApps.Metro/Controls/TimePicker/TimePickerBaseSelectionChangedEventArgs.cs deleted file mode 100644 index a9b2afd74b..0000000000 --- a/src/MahApps.Metro/Controls/TimePicker/TimePickerBaseSelectionChangedEventArgs.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace MahApps.Metro.Controls -{ - using System.Windows; - - public class TimePickerBaseSelectionChangedEventArgs : RoutedEventArgs - { - public TimePickerBaseSelectionChangedEventArgs(RoutedEvent eventId, T oldValue, T newValue) : - base(eventId) - { - this.OldValue = oldValue; - this.NewValue = newValue; - } - - public T OldValue { get; } - public T NewValue { get; } - } -} \ No newline at end of file