Saltar al contenido

WPF Binding StringFormat Cadena de fecha corta

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *