Pregunta

Tengo un doble, por ejemplo

double d = 4.323d;

Y quiero mostrarlo en un TextBlock en una aplicación de Silverlight 4, pero la pantalla debería ser la siguiente:

4.32

Y no puedo cambiar el StringFormat en el que sea vinculante.

La excepción es que si el número es la siguiente:

double d2 = 4d;

A continuación, debería mostrar

4, no 4.00.

Y lo peor excepción es que se debe tomar en cuenta la cultura de interfaz de usuario actual, lo que implica que si la aplicación se implementa en los EE.UU. debe utilizar un . como separador decimal y en Europa se debe utilizar un , (bueno no en el Reino Unido, pero usted consigue el punto ...)

Me podría establecer el DefaultFormat a #.## si yo fuera capaz de cambiar el StringFormat, pero quiero hacerlo a través de CultureInfo

¿Fue útil?

Solución

Me voy a suponer por un momento que usted cree que no puede utilizar StringFormat en la unión, ya que no utiliza CultureInfo. Siendo ese el caso, añadir estas dos usings a su código de control de usuario detrás: -

using System.Windows.Markup;
using System.Threading;

y luego añadir esto a su constructor: -

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

Ahora una unión con StringFormat=#.## utilizará el separador decimal apropiados para la cultura actual.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top