Ceci est un doublon possible de Définir la date par défaut du sélecteur de date WPF sur la date actuelle mais j'ai essayé le code de la question et cela ne fonctionne pas, espérons-le Il me manque quelque chose de simple
OK, comme l'indique la question, je souhaite afficher la date actuelle lorsque la vue se charge, cependant, j'ai la propriété SelectedDate liée à une de mes propriétés, et je ne pense pas que vous puissiez utiliser "Texte" parce que la propriété à laquelle je lie est une propriété DateTime. oui, je pourrais faire une conversion dans le modèle mais le XAML (je pense) devrait pouvoir le faire pour moi.
OK, je sais quel est le problème, la date sort "01/01/0001" car bien sûr, sa liaison à ma propriété est par défaut 01/01/0001, donc je suppose que je devrai faire du code C # dans ma propriété pour dire si son 01/01/0001, utilisez DateTime.Now et sinon, utilisez la propriété.
Le XAML
<DatePicker HorizontalAlignment="Left"
DisplayDate="{x:Static System:DateTime.Now}"
SelectedDate="{Binding AvailableFrom, Mode=TwoWay}"
Margin="139,58,0,0"
VerticalAlignment="Top"
Width="120"/>
Je suis heureux de supprimer cela après si les grands représentants pensent que c'est un doublon,
Ce que j'ai fait pour résoudre ...
get
{
if (m_AvailableFrom == DateTime.MinValue)
return DateTime.Now;
return m_AvailableFrom;
}
Vive l'aide
Personnellement, je voudrais simplement assigner DateTime.Now
à la propriété AvailableFrom
dans le code ViewModel.
Si vous souhaitez utiliser XAML, une option consiste à faire de la propriété AvailableFrom
un DateTime?
(DateTime nullable) plutôt qu'un DateTime
. La valeur par défaut est alors null plutôt que "01/01/0001".
Ensuite, dans votre XAML, vous pouvez utiliser
xmlns:System="clr-namespace:System;Assembly=mscorlib"
<DatePicker
HorizontalAlignment="Left"
SelectedDate="{Binding
Path=AvailableFrom,
Mode=TwoWay,
TargetNullValue={x:Static System:DateTime.Now}}"
Margin="139,58,0,0"
VerticalAlignment="Top"
Width="120" />
et l'interface utilisateur affichera la date actuelle chaque fois que AvailableFrom
est nul.
Le lien MSDN pour la propriété SelectedDate ci-dessous l'affiche comme nullable. Je pense qu'au lieu de renvoyer DateTime, renvoyez simplement null s'il n'est pas défini et je soupçonne que, comme les autres contrôles avec des champs nullables, il n'affichera simplement rien.