private static void OnTimePartPropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e) { TimeBox control = source as TimeBox; int newValue = (int)e.NewValue; int oldValue = (int)e.OldValue; // Setting control.Time triggers OnTimePropertyChanged // And SetTimePars inside OnTimePropertyChanged may call back to current method OnTimePartPropertyChanged. // This must be checked to avoid such a deadloop. if (newValue != oldValue) { control.Time = control.ComposeTime(); } }
private static void OnTimePropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e) { TimeBox control = source as TimeBox; TimeSpan newValue = (TimeSpan)e.NewValue; TimeSpan oldValue = (TimeSpan)e.OldValue; // SetTimeParts triggers OnTimePartPropertyChanged // And it sets control.Time that calls back to current method OnTimePropertyChanged. // This must be checked to avoid such a deadloop. if (newValue != oldValue) { control.SetTimeParts(newValue); } }