xamarin / Xamarin.Forms

Xamarin.Forms is no longer supported. Migrate your apps to .NET MAUI.
https://aka.ms/xamarin-upgrade
Other
5.62k stars 1.87k forks source link

DatePicker MinimumDate/MaximumDate shouldn't be selectable #3048

Closed MaxFe closed 10 months ago

MaxFe commented 6 years ago

Description

When MinimumDate is set to today and we choose yesterday, today will be chosen for DateProperty. It would be great when everything lower than MinimumDate couldn't be chosen at all (e.g. it wouldn't scroll to a date lower then MinimumDate). The same for MaximumDate. The current implementation could cause confusion. When the user chooses a date that is lower than MinimumDate the DateProperty will be magically set to today. Without giving feedback to the user.

Steps to Reproduce / Actual Behavior

MinimumDate was set to today.

  1. Open DatePicker and choose yesterday
  2. Click "Accept"
  3. Today will appear as DateProperty and will be shown

Expected Behavior

MinimumDate was set to today. Solution: Open DatePicker and choose yesterday (that shouldn't be possible) Optional solution: Click "Accept" (or it shouldn't be possible to click accept)

Basic Information

UnreachableCode commented 6 years ago

I am facing a similar issue right now. While I'd like if a datepicker didn't allow the selection of days in the past, I still need it to show yesterday if it's set from another source, e.g. a database.

andreinitescu commented 5 years ago

It would be great when everything lower than MinimumDate couldn't be chosen at all (e.g. it wouldn't scroll to a date lower then MinimumDate)

The UWP control doesn't actually have a minimum date. It has only a MinYear: https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.datepicker.minyear Same for maximum date, there's only a MaxYear property. I think this is because of the way the native DatePicker control on UWP is designed, it has separate sliders for month, day, year.

Instead of using DatePicker on UWP, I think it would be better if the native control would be the CalendarView: https://docs.microsoft.com/en-us/uwp/api/Windows.UI.Xaml.Controls.CalendarView which supports setting minimum and maximum date.

On Android the renderer is actually a calendar which supports min/max dates. On iOS, the native control (UIDatePicker) also supports min/max dates.

It's up to the Xamarin Forms team to approve changing the UWP renderer to use the CalendarView

JuanuMusic commented 4 years ago

Update on current behavior that might need review: ANDROID: Minimum Date shows a calendar with only Dates from Minimum Date and TO Maximum Date.

IOS: The picker lets you navigate to any date but when choosing one outside the range it selects the minimum or maximum. Should the picker display only allowed dates?

jfversluis commented 10 months ago

Thanks for this suggestion! As Xamarin.Forms is now in maintenance mode, this will not happen anymore for Xamarin.Forms. We're only adding bugfixes and stability fixes.

If this is still important to you, make sure to check the .NET MAUI repo and see if it's already on the roadmap. If not, feel free to open a discussion to discuss a change first or open an issue with a detailed feature request. Thanks!