Je développe des applications WinPhone.

<DatePicker x:Name="MyDatePicker" MinYear="2016" MaxYear="2017"/>

Le code ne fonctionne pas.

Je peux choisir les années précédentes et je peux choisir 2015, 2018, etc. Si possible, je voudrais désactiver les mois et les jours dans DatePicker lui-même.

En bref, je voudrais définir la date minimale et maximale autorisée pour le calendrier afin que les dates indésirables soient désactivées dans le calendrier.

10
Rajan M 2 août 2017 à 12:06

2 réponses

Dans Winphone 8.1, il n'y a aucun moyen de définir dates minimales et maximales mais comme eugene-berdnikov suggéré dans le post ci-dessus, vous pouvez définir MinYear et MaxYear pour le mois et le jour que vous devrez gérer via la validation du code.

Mais UWP (Universal Windows Platform) a un CalendarDatePicker à l'aide duquel vous pouvez définir les propriétés MinDate et MaxDate

Si vous souhaitez prendre en charge Windows 10 et les versions futures, vous pouvez commencer à migrer vers UWP (Universal Windows Platform)

Voici une migration tutoriel

C'est aussi simple que de créer un nouveau projet UWP et de copier des fichiers existants et de réécrire du code c'est tout.

Classe ViewModel

public DateTimeOffset MinDate
{
    get { return new DateTime(2016, 1, 1); }
}

public DateTimeOffset MaxDate
{
    get { return new DateTime(2017, 12, 31); }
}

Disposition XAML

<CalendarDatePicker MinDate="{Binding MinDate}" MaxDate="{Binding MaxDate}"/>

Code derrière

CalendarDatePicker calObj=new CalendarDatePicker();

DateTime minDate =  new DateTime(2016, 1, 1, 0, 0, 0)
minDate = DateTime.SpecifyKind(minDate, DateTimeKind.Utc);
DateTimeOffset min_Date = minDate;

DateTime maxDate =  new DateTime(2017, 1, 1, 0, 0, 0)
maxDate = DateTime.SpecifyKind(maxDate, DateTimeKind.Utc);
DateTimeOffset max_Date = maxDate;

calObj.MinDate=min_Date;
calObj.MaxDate=max_Date;

Veuillez savoir que UWP prend également en charge DatePicker qui fait partie de Windows Phone 8.1

Ma suggestion est dans Winphone 8.1, utilisez DatePicker et Windows 10 utilise CalendarDatePicker

Voici la liste des Commandes de date et d'heure disponibles dans UWP

La plupart des appareils Windows Phone 8.1 ont également 10 mises à jour, vous pouvez donc voir beaucoup de gens passer à 10

1
Durai Amuthan.H 4 sept. 2017 à 14:11

Si vous utilisez Xamarin.Forms, alors

<StackLayout>
  <DatePicker VerticalOptions="CenterAndExpand" Date="{x:Static sys:DateTime.Now}">
     <DatePicker.Format>yyyy-MM-dd</DatePicker.Format>
     <DatePicker.MinimumDate>
        <sys:DateTime x:FactoryMethod="Parse">
           <x:Arguments>
              <x:String>Jan 1 2000</x:String>
           </x:Arguments>
        </sys:DateTime>
     </DatePicker.MinimumDate>
     <DatePicker.MaximumDate>
        <sys:DateTime x:FactoryMethod="Parse">
           <x:Arguments>
              <x:String>Dec 31 2050</x:String>
           </x:Arguments>
        </sys:DateTime>
     </DatePicker.MaximumDate>
  </DatePicker>

Récupéré de https://developer.xamarin.com/api/type/Xamarin .Forms.DatePicker /

Si vous voulez seulement avoir des années, utilisez un sélecteur normal et donnez-lui une liste d'années dans votre plage acceptée. https://developer.xamarin.com/api/type/Xamarin.Forms .Picker /

4
Brandon Minnick 24 avril 2018 à 16:53