2016-04-08 6 views

Répondre

0

Créez une classe héritée de CalendarDatePicker, ajoutez une dépendance min/max personnalisée.

public class CustomCalendarDatePicker : CalendarDatePicker 
{ 
    public DateTimeOffset Max 
    { 
     get { return (DateTimeOffset)GetValue(MaxProperty); } 
     set { SetValue(MaxProperty, value); } 
    } 

    public static readonly DependencyProperty MaxProperty = 
     DependencyProperty.Register(
      nameof(Max),      // The name of the DependencyProperty 
      typeof(DateTimeOffset),     // The type of the DependencyProperty 
      typeof(CustomCalendarDatePicker), // The type of the owner of the DependencyProperty 
      new PropertyMetadata(   
        null, onMaxChanged     // The default value of the DependencyProperty 
      )); 

    private static void onMaxChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) 
    { 
     var calendar = d as CustomCalendarDatePicker; 
     calendar.MaxDate = (DateTimeOffset)e.NewValue; 
    } 

    public DateTimeOffset Min 
    { 
     get { return (DateTimeOffset)GetValue(MinProperty); } 
     set { SetValue(MinProperty, value); } 
    } 

    public static readonly DependencyProperty MinProperty = 
     DependencyProperty.Register(
      nameof(Min),      // The name of the DependencyProperty 
      typeof(DateTimeOffset),     // The type of the DependencyProperty 
      typeof(CustomCalendarDatePicker), // The type of the owner of the DependencyProperty 
      new PropertyMetadata(   
       null, onMinChanged      // The default value of the DependencyProperty 
      )); 

    private static void onMinChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) 
    { 
     var calendar = d as CustomCalendarDatePicker; 
     calendar.MinDate = (DateTimeOffset)e.NewValue; 
    } 
} 

Utilisation:

<controls:CustomCalendarDatePicker Min="" Max=""/> 
+0

Salut, Merci de votre réponse. J'ai essayé même mais j'obtiens l'erreur suivante Impossible d'assigner la valeur de texte "10/2/2017" dans la propriété Min de type DateTimeOfffset. xaml -

+1

J'ai modifié la propriété Min et Max de type DateTimeOffset en string .now ses remerciements de travail –

+0

Content que cela ait fonctionné pour vous, veuillez accepter comme réponse pls :) – thang2410199