diff --git a/src/Ursa/Controls/DateTimePicker/TimePicker.cs b/src/Ursa/Controls/DateTimePicker/TimePicker.cs index 983e3d2..1383bac 100644 --- a/src/Ursa/Controls/DateTimePicker/TimePicker.cs +++ b/src/Ursa/Controls/DateTimePicker/TimePicker.cs @@ -39,6 +39,16 @@ public class TimePicker : TimePickerBase, IClearControl { SelectedTimeProperty.Changed.AddClassHandler((picker, args) => picker.OnSelectionChanged(args)); + DisplayFormatProperty.Changed.AddClassHandler((picker, args) => picker.OnDisplayFormatChanged(args)); + } + + private void OnDisplayFormatChanged(AvaloniaPropertyChangedEventArgs args) + { + if (_textBox is null) return; + var time = SelectedTime; + var date = new DateTime( 1, 1, 1, time.Value.Hours, time.Value.Minutes, time.Value.Seconds); + var text = date.ToString(DisplayFormat); + _textBox.Text = text; } public string? Watermark diff --git a/src/Ursa/Controls/DateTimePicker/TimePickerPresenter.cs b/src/Ursa/Controls/DateTimePicker/TimePickerPresenter.cs index dedf751..0f8db96 100644 --- a/src/Ursa/Controls/DateTimePicker/TimePickerPresenter.cs +++ b/src/Ursa/Controls/DateTimePicker/TimePickerPresenter.cs @@ -130,12 +130,12 @@ public class TimePickerPresenter : TemplatedControl private void OnPanelFormatChanged(AvaloniaPropertyChangedEventArgs args) { var format = args.NewValue.Value; - UpdatePanelLayout(format); } - private void UpdatePanelLayout(string panelFormat) + private void UpdatePanelLayout(string? panelFormat) { + if (panelFormat is null) return; var parts = panelFormat.Split(new[] { ' ', '-', ':' }, StringSplitOptions.RemoveEmptyEntries); var panels = new List(); foreach (var part in parts)