c# - tipos - ¿Por qué StringFormat de un enlace no utilizó una cultura actual?
tag c# (1)
Por defecto, WPF utilizará el inglés como cultura para enlazar el procesamiento de StringFormat
, no la cultura actual del hilo.
Puede anular esto agregando lo siguiente en el código de inicio de la aplicación:
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
new FrameworkPropertyMetadata( XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
Para más detalles, vea el artículo de Josh Smith sobre Cómo crear un asistente internacionalizado .
Mi cultura actual es ru-RU. Lo necesito para formatear la cadena decimal a la moneda.
decimal n = 111.22M;
n.ToString("C") will return "111,22р."
pero cuando trato de usar el campo StringFormat de un enlace obtengo un resultado de "$ 111.22"
<TextBlock Text={Binding Number, StringFormat=C} />