2011-11-16 9 views
5

he estado teniendo un poco de diversión con fijaciones TextBlock en Silverlight 4.
tengo la siguiente situación:¿Error o característica en TextBlock en Silverlight 4?

<TextBlock Text="{Binding Date, StringFormat=g}" /> 
<TextBlock> 
    <Run Text="{Binding Date, StringFormat=g}"/> 
<TextBlock> 

Dónde Date es una propiedad de tipo System.DateTime.
No he cambiado la cultura actual de la aplicación.

La cultura de mi máquina es Bulgaria (bg-BG). Por ejemplo:

TextBlock 1: 11/16/2011 24:49
TextBlock 2: 16.11.2011 г. 12:49 ч.

Lo interesante es que la primera TextBlock formatea la fecha y la hora con la cultura es-(o el invariante por defecto), mientras que el segundo utiliza la cultura bg-BG. cosa conseguir aún más extraño desde MSDN documentation para Silverlight TextBlock de control dice:

Si el InlineCollection se crea a partir de XAML como texto interior de un elemento de objeto TextBlock o si se crea mediante el establecimiento de la propiedad de texto, el InlineCollection contiene una única ejecución que contiene ese texto.

¿Echo de menos algo aquí o se puede considerar error en Silverlight 4?

+1

extraño. ¿Ha notado que la propiedad Text de la clase Run no es DependencyProperty? Me pregunto cómo funciona el enlace en esta situación. He intentado colocar un convertidor en ambos enlaces y en el enlace Ejecutar el parámetro de cultivo pasado al método Convert es NULL. Yo diría que esto es un error – Bruno

Respuesta

2

Hemos encontrado que debe asegurarse de que el Language del control esté configurado correctamente para que cumpla correctamente las configuraciones de idioma. En nuestro caso, fue por los símbolos de moneda, pero supongo que también ocurre el mismo problema para las fechas.

Tim Heuer tiene un blog post titulado "StringFormat y CurrentCulture en Silverlight" sobre esto.

La solución es añadir la siguiente línea a la vista constructor:

this.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name); 

Esto no explica por qué funciona correctamente para el <Run>

Cuestiones relacionadas