@@ -74,15 +74,40 @@ private static void SelectedTimePropertyChangedCallback(DependencyObject depende
7474 timePicker . SetCurrentValue ( TextProperty , timePicker . DateTimeToString ( timePicker . SelectedTime ) ) ;
7575 timePicker . _isManuallyMutatingText = false ;
7676 timePicker . _lastValidTime = timePicker . SelectedTime ;
77+
78+ OnSelectedTimeChanged ( timePicker , dependencyPropertyChangedEventArgs ) ;
7779 }
7880
7981 public DateTime ? SelectedTime
8082 {
8183 get { return ( DateTime ? ) GetValue ( SelectedTimeProperty ) ; }
8284 set { SetValue ( SelectedTimeProperty , value ) ; }
83- }
85+ }
86+
87+ public static readonly RoutedEvent SelectedTimeChangedEvent =
88+ EventManager . RegisterRoutedEvent (
89+ nameof ( SelectedTime ) ,
90+ RoutingStrategy . Bubble ,
91+ typeof ( RoutedPropertyChangedEventHandler < DateTime ? > ) ,
92+ typeof ( TimePicker ) ) ;
93+
94+ public event RoutedPropertyChangedEventHandler < DateTime ? > SelectedTimeChanged
95+ {
96+ add => AddHandler ( SelectedTimeChangedEvent , value ) ;
97+ remove => RemoveHandler ( SelectedTimeChangedEvent , value ) ;
98+ }
99+
100+ private static void OnSelectedTimeChanged (
101+ DependencyObject d , DependencyPropertyChangedEventArgs e )
102+ {
103+ var instance = ( TimePicker ) d ;
104+ var args = new RoutedPropertyChangedEventArgs < DateTime ? > (
105+ ( DateTime ? ) e . OldValue ,
106+ ( DateTime ? ) e . NewValue ) { RoutedEvent = SelectedTimeChangedEvent } ;
107+ instance . RaiseEvent ( args ) ;
108+ }
84109
85- public static readonly DependencyProperty SelectedTimeFormatProperty = DependencyProperty . Register (
110+ public static readonly DependencyProperty SelectedTimeFormatProperty = DependencyProperty . Register (
86111 nameof ( SelectedTimeFormat ) , typeof ( DatePickerFormat ) , typeof ( TimePicker ) , new PropertyMetadata ( DatePickerFormat . Short ) ) ;
87112
88113 public DatePickerFormat SelectedTimeFormat
0 commit comments