Je voudrais utiliser le format de chaîne nommé Date courte dans WPF.
J'ai essayé quelque chose comme:
<TextBlock Text="{Binding Date, StringFormat='Short Date'}" />
Comment faire ça?
Je voudrais utiliser le format de chaîne nommé Date courte dans WPF.
J'ai essayé quelque chose comme:
<TextBlock Text="{Binding Date, StringFormat='Short Date'}" />
Comment faire ça?
Essayez ceci:
<TextBlock Text="{Binding PropertyPath, StringFormat=d}" />
qui est de la culture sensible et nécessite .NET 3.5 SP1 ou supérieur.
REMARQUE: Il est sensible à la casse. "d" est le spécificateur de format de date courte , tandis que "D" est la longue date spécificateur de format.
Il y a une liste complète de chaîne de format sur la page MSDN sur la Norme de la Date et de l'Heure des Chaînes de Format et une explication complète de toutes les options sur ce blog MSDN
Cependant, il y a un piège avec cette - il toujours des sorties de la date au format AMÉRICAIN, sauf si vous définissez la culture à la valeur correcte vous-même.
Si vous ne définissez pas cette propriété, le moteur de liaison utilise le Langage de la propriété de la liaison de l'objet cible. En XAML par défaut, c'est "en-US" ou hérite de la valeur de l'élément racine (ou de n'importe quel élément de la page, si l'on a été défini explicitement.
Une façon de le faire c'est dans le code-behind (en supposant que vous avez la culture de l'thread à la valeur correcte):
this.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);
L'autre façon est de mettre le convertisseur de la culture dans la liaison:
<TextBlock Text="{Binding PropertyPath, StringFormat=d, ConverterCulture=en-GB}" />
Bien que cela ne vous permet pas de localiser la sortie.
Utilisez la propriété StringFormat
(ou ContentStringFormat
sur ContentControl
et ses dérivés, par exemple Label
).
<TextBlock Text="{Binding Date, StringFormat={}{0:d}}" />
Notez que {}
avant la notation d'argument de position standard String.Format
permet aux accolades d'être échappées dans le langage d'extension du balisage.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.