diff --git a/src/Compatibility/Core/src/Android/Renderers/TimePickerRenderer.cs b/src/Compatibility/Core/src/Android/Renderers/TimePickerRenderer.cs index 83203a21169d..8e4b05ea7ba6 100644 --- a/src/Compatibility/Core/src/Android/Renderers/TimePickerRenderer.cs +++ b/src/Compatibility/Core/src/Android/Renderers/TimePickerRenderer.cs @@ -140,7 +140,7 @@ void IPickerRenderer.OnClick() TimePicker view = Element; ElementController.SetValueFromRenderer(VisualElement.IsFocusedPropertyKey, true); - _dialog = CreateTimePickerDialog(view.Time.Hours, view.Time.Minutes); + _dialog = CreateTimePickerDialog(view.Time?.Hours ?? 0, view.Time?.Minutes ?? 0); _dialog.Show(); } @@ -159,17 +159,17 @@ void OnCancelButtonClicked(object sender, EventArgs e) } [PortHandler] - void SetTime(TimeSpan time) + void SetTime(TimeSpan? time) { if (String.IsNullOrEmpty(Element.Format)) { var timeFormat = "t"; - EditText.Text = DateTime.Today.Add(time).ToString(timeFormat); + EditText.Text = DateTime.Today.Add(time ?? TimeSpan.Zero).ToString(timeFormat); } else { var timeFormat = Element.Format; - EditText.Text = DateTime.Today.Add(time).ToString(timeFormat); + EditText.Text = DateTime.Today.Add(time ?? TimeSpan.Zero).ToString(timeFormat); } Element.InvalidateMeasureNonVirtual(Internals.InvalidationTrigger.MeasureChanged); diff --git a/src/Compatibility/Core/src/Windows/TimePickerRenderer.cs b/src/Compatibility/Core/src/Windows/TimePickerRenderer.cs index ded027021259..4d9139a7e415 100644 --- a/src/Compatibility/Core/src/Windows/TimePickerRenderer.cs +++ b/src/Compatibility/Core/src/Windows/TimePickerRenderer.cs @@ -173,7 +173,7 @@ void UpdateFont() [PortHandler] void UpdateTime() { - Control.Time = Element.Time; + Control.Time = Element.Time ?? TimeSpan.Zero; if (Element.Format?.Contains('H', StringComparison.Ordinal) == true) { Control.ClockIdentifier = "24HourClock"; diff --git a/src/Compatibility/Core/src/iOS/Renderers/TimePickerRenderer.cs b/src/Compatibility/Core/src/iOS/Renderers/TimePickerRenderer.cs index fe997dc64d2c..d6ac8915442e 100644 --- a/src/Compatibility/Core/src/iOS/Renderers/TimePickerRenderer.cs +++ b/src/Compatibility/Core/src/iOS/Renderers/TimePickerRenderer.cs @@ -217,7 +217,7 @@ void UpdateCharacterSpacing() [PortHandler] void UpdateTime() { - _picker.Date = new DateTime(1, 1, 1).Add(Element.Time).ToNSDate(); + _picker.Date = new DateTime(1, 1, 1).Add(Element.Time ?? TimeSpan.Zero).ToNSDate(); string iOSLocale = NSLocale.CurrentLocale.CountryCode; var cultureInfos = CultureInfo.GetCultures(CultureTypes.AllCultures) .Where(c => c.Name.EndsWith("-" + iOSLocale)).FirstOrDefault(); @@ -228,12 +228,12 @@ void UpdateTime() { string timeformat = cultureInfos.DateTimeFormat.ShortTimePattern; NSLocale locale = new NSLocale(cultureInfos.TwoLetterISOLanguageName); - Control.Text = DateTime.Today.Add(Element.Time).ToString(timeformat, cultureInfos); + Control.Text = DateTime.Today.Add(Element.Time ?? TimeSpan.Zero).ToString(timeformat, cultureInfos); _picker.Locale = locale; } else { - Control.Text = DateTime.Today.Add(Element.Time).ToString(Element.Format, cultureInfos); + Control.Text = DateTime.Today.Add(Element.Time ?? TimeSpan.Zero).ToString(Element.Format, cultureInfos); } if (Element.Format?.Contains('H', StringComparison.Ordinal) == true) diff --git a/src/Controls/samples/Controls.Sample/Pages/Controls/TimePickerPage.xaml b/src/Controls/samples/Controls.Sample/Pages/Controls/TimePickerPage.xaml index 13f7d25fc708..26c81fd2f840 100644 --- a/src/Controls/samples/Controls.Sample/Pages/Controls/TimePickerPage.xaml +++ b/src/Controls/samples/Controls.Sample/Pages/Controls/TimePickerPage.xaml @@ -87,6 +87,14 @@ Margin="6, 0" Style="{StaticResource IsFocusedTextStyle}"/> - +