Solución:
Prueba esto:
<TextBlock Text="{Binding PropertyPath, StringFormat=d}" />
que es sensible a la cultura y requiere .NET 3.5 SP1 o superior.
NOTA: Esto distingue entre mayúsculas y minúsculas. “d” es el especificador de formato de fecha corta, mientras que “D” es el especificador de formato de fecha larga.
Hay una lista completa de formato de cadena en la página de MSDN sobre cadenas de formato de fecha y hora estándar y una explicación más completa de todas las opciones en esta publicación de blog de MSDN
Sin embargo, hay un problema con esto: siempre genera la fecha en formato de EE. UU. A menos que usted mismo establezca la cultura en el valor correcto.
Si no establece esta propiedad, el motor de enlace utiliza la Idioma propiedad del objeto de destino vinculante. 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 uno explícitamente.
Fuente
Una forma de hacer esto es en el código subyacente (suponiendo que haya configurado la cultura del hilo 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.
O use esto para un formato en inglés (o mézclelo para personalizarlo):
StringFormat="{}{0:dd/MM/yyyy}"
Utilizar el StringFormat
propiedad (o ContentStringFormat
sobre ContentControl
y sus derivados, p. ej. Label
).
<TextBlock Text="{Binding Date, StringFormat={}{0:d}}" />
Nota la {}
antes de la norma String.Format
La notación de argumentos posicionales permite que las llaves se escapen en el lenguaje de extensión de marcado.