private static void SelectedTimePropertyChanged(DependencyObject sender,
DependencyPropertyChangedEventArgs e)
{
TimePicker timePicker = (TimePicker)sender;
TimeSpan newTime = (TimeSpan)e.NewValue;
TimeSpan oldTime = (TimeSpan)e.OldValue;
if (!timePicker.isUpdatingTime)
{
timePicker.BeginUpdateSelectedTime();//signal that the selected time is being updated
if (timePicker.SelectedHour != newTime.Hours)
timePicker.SelectedHour = newTime.Hours;
if (timePicker.SelectedMinute != newTime.Minutes)
timePicker.SelectedMinute = newTime.Minutes;
if (timePicker.SelectedSecond != newTime.Seconds)
timePicker.SelectedSecond = newTime.Seconds;
timePicker.EndUpdateSelectedTime();//signal that the selected time has been updated
timePicker.OnTimeSelectedChanged(timePicker.SelectedTime, oldTime);
}
}