2010-10-07 11 views
39

WPF DatePicker affiche toujours «Afficher le calendrier» par défaut. Je veux qu'il montre la date actuelle/d'aujourd'hui. Comment je fais ça. J'ai essayé de faire quelque chose comme ci-dessous dans le constructeur, mais il ne fonctionnera pas,WPF DatePicker par défaut à la date du jour

datePicker.SelectedDate = DateTime.Now.Date; 

ou

datePicker.DisplayDate = DateTime.Now.Date; 

Répondre

101

s'il vous plaît essayer cette ....

<my:DatePicker SelectedDate="{x:Static sys:DateTime.Now}"/> 

ajouter cette référence

xmlns:sys="clr-namespace:System;assembly=mscorlib" 
+2

Comment cela se ferait-il si je devais fixer la date pour demain (ou tout autre jour qui doit être calculé dynamiquement)? Je veux utiliser XAML pour ça. –

+2

Référez-vous à: http://stackoverflow.com/questions/16463217/setting-a-static-datetime-in-wpf-xaml – Rob

+0

Notez que le préfixe 'app' dans ce cas est l'espace de noms de la classe d'assistance, par ex. xmlns: app = "clr-namespace: AppName.WPFHelpers" où namespace AppName.WPFHelpers {public static class DateTimeHelper ..... – Rob

1

Couple d'options ...

Vous pouvez copier le style entier pour la DatePicker contrôle et édite le code XAML et l'utilise comme ressource par défaut rendant le TargetType DatePicker qui le forcera à être utilisé dans toute l'application.

Vous pouvez également modifier le style localement et placer votre propre TextBox dans le style et masquer le DatePickerTextBox, puis configurer la liaison de manière appropriée.

Une conversation en profondeur here avec une très bonne explication par ericf au sommet.

16

Les travaux ci-dessous pour moi. (DpDate est mon contrôle DatePicker)

public MainWindow() 
{ 
    InitializeComponent(); 
    dpDate.SelectedDate = DateTime.Today;    
} 
0

Si vous avez besoin de définir la date par programme (ou dans le code derrière), vous pouvez essayer ...

datePicker.Text = DateTime.Now.Date.ToString(); 
Questions connexes