2008-12-29 18 views
12

Sé que WPF 3.5 SP1 admite un StringFormat en un enlace, pero ¿puede Silverlight hacer lo mismo? Pensé que podría, pero ¡maldita sea si puedo hacer que funcione!¿Silverlight admite StringFormat en enlace?

He aquí un fragmento de mi XAML:

<TextBlock Text="{Binding StartTime, StringFormat=t}" /> 

Se compila bien, pero me da un error de ejecución cuando se pone al navegador ...

Respuesta

11

Silverlight 3 y por debajo no lo hacen, pero puede usar un Value Converter y especificar el ConverterParamenter en el enlace. Tendrás que crear tu propio convertidor de valor derivando una clase de IValueConverter como he mostrado here.

Silverlight 4 y versiones posteriores tienen la misma propiedad de enlace StringFormat que WPF.

+7

SL4 hace. http://msdn.microsoft.com/en-us/library/cc278072(VS.95).aspx –

37

No sé qué versión de Silverlight presentó, pero ahora puede. Estoy usando Silverlight 4 Beta.

<data:DataGridTextColumn Header="Date" 
    Binding="{Binding CreateDt, StringFormat=\{0:d\}}" /> 

http://blog.davemdavis.net/2009/12/silverlight-4-data-binding-string.html

Aquí hay información sobre Formatting Types, y más para DateTime.

Aquí hay documentación completa sobre Silverlight Binding.

+1

La referencia relevante dice que solo es compatible con Silverlight 4 http://msdn.microsoft.com/en-us/library/ system.windows.data.bindingbase.stringformat% 28VS.95% 29.aspx – russau

+0

Por cierto, Tim Heuer señala un error y una solución con el enlace StringFormat cuando se usa con culturas no estadounidenses: http://timheuer.com/blog/ archive/2010/08/11/stringformat-and-currentculture-in-silverlight.aspx –

1

El formato de cadena observado por Simon está en Silverlight 4. Incluso hay compatibilidad en la mezcla para configurar el formato.

Cuestiones relacionadas