Me gustaría utilizar Short Date named string format en WPF.WPF Binding StringFormat Short Date String
he intentado algo así como:
<TextBlock Text="{Binding Date, StringFormat='Short Date'}" />
cómo hacer esto?
Me gustaría utilizar Short Date named string format en WPF.WPF Binding StringFormat Short Date String
he intentado algo así como:
<TextBlock Text="{Binding Date, StringFormat='Short Date'}" />
cómo hacer esto?
Prueba esto:
<TextBlock Text="{Binding PropertyPath, StringFormat=d}" />
que es la cultura sensible y requiere .NET 3.5 SP1 o superior.
NOTA: Esto distingue entre mayúsculas y minúsculas. "d" es short date format specifier mientras que "D" es long date format specifier.
Hay una lista completa de formato de cadena en la MSDN page on Standard Date and Time Format Strings y una explicación más completa de todas las opciones en this MSDN blog post
Sin embargo, no es uno de gotcha con esto - es siempre imprime la fecha en formato de EE.UU. a menos que establezca la cultura al valor correcto usted mismo.
Si no se establece esta propiedad, el motor de enlace utiliza el lenguaje propiedad del objeto de destino de enlace. En XAML, este valor predeterminado es "en-US" o hereda el valor del elemento raíz (o cualquier elemento) de la página, si se ha establecido explícitamente.
Una forma de hacerlo es en el código subyacente (suponiendo que haya configurado la cultura de la rosca en el valor correcto):
this.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);
La otra forma es establecer la cultura del convertidor en el enlace:
<TextBlock Text="{Binding PropertyPath, StringFormat=d, ConverterCulture=en-GB}" />
Aunque esto no le permite localizar la salida.
sólo tiene que utilizar:
<TextBlock Text="{Binding Date, StringFormat=\{0:d\}}" />
Utilice la propiedad StringFormat
(o ContentStringFormat
en ContentControl
y sus derivados, por ejemplo Label
).
<TextBlock Text="{Binding Date, StringFormat={}{0:d}}" />
Nota del {}
antes de la String.Format
notación posicional argumento estándar permite que los apoyos que se escaparon en el lenguaje de extensión de marcado.
El '{}' le permitirá usar 'StringFormat = '{} Fecha de creación: {0: d}'' que de lo contrario produciría resultados inesperados. –
O utilizar esto para un Inglés (o mezclarlo para encargo) Formato:
StringFormat='{}{0:dd/MM/yyyy}'
También puede usar 'ConverterCulture =' en su enlace, que requiere un valor para indicar el formato. (ConverterCulture = 'en-GB' es Gran Bretaña). – else
Si desea agregar una cadena con el uso valor presente:
<TextBlock Text="{Binding Date, StringFormat= 'Date : {0:d}'}" />
Algunas muestras DateTime StringFormat Me pareció útil.Levantado de C# Examples
DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123);
String.Format("{0:y yy yyy yyyy}", dt); // "8 08 008 2008" year
String.Format("{0:M MM MMM MMMM}", dt); // "3 03 Mar March" month
String.Format("{0:d dd ddd dddd}", dt); // "9 09 Sun Sunday" day
String.Format("{0:h hh H HH}", dt); // "4 04 16 16" hour 12/24
String.Format("{0:m mm}", dt); // "5 05" minute
String.Format("{0:s ss}", dt); // "7 07" second
String.Format("{0:f ff fff ffff}", dt); // "1 12 123 1230" sec.fraction
String.Format("{0:F FF FFF FFFF}", dt); // "1 12 123 123" without zeroes
String.Format("{0:t tt}", dt); // "P PM" A.M. or P.M.
String.Format("{0:z zz zzz}", dt); // "-6 -06 -06:00" time zone
¡Gracias! ¡Lo tienes! Cuando pregunté si tenía en mente cuál era el formato de cadena de fecha corta, dónde podría encontrar la lista de formatos de cadena, y también me gustó que respondiste con StringFormat = d. Muy claro y completo. – Tony
¿Esto siempre muestra el formato de EE. UU. Independientemente de la configuración cultural? – CRice
@CRice - sí lo hace - por alguna razón - usted mismo ha establecido la cultura. – ChrisF