Hey, désolé pour mon mauvais anglais ...Silverlight 4 comment formater une valeur décimale binded
J'ai une zone de texte très simple sur mon application sl4, comme ceci:
<TextBox Text="{Binding Source={StaticResource Valor}, Path=ValorReal, ValidatesOnExceptions=True, Mode=TwoWay, ValidatesOnDataErrors=True, StringFormat=\{0:c\}, NotifyOnValidationError=True}" />
et une classe comme:
public class Valor: INotifyPropertyChanged
{
double _valorReal;
public double ValorReal
{
get
{
return _valorReal;
}
set
{
_valorReal = value;
RaisePropertyChanged("ValorReal");
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string property)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(property));
}
}
}
Je vis au Brésil, alors voici le séparateur décimal est « » et le chiffre de regroupement est, donc 1.000,50 $ est mille dollars et cinquante cents « ». Mais en utilisant l'exemple ci-dessus, si je chiffre 1000,50 sur la zone de texte, après je quitte le champ, il devient 100,050.00 $. Comment puis-je obtenir les paramètres corrects?
Le CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator, CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol, CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator ont les bonnes valeurs, mais silverlight les ignore sur ma fixation :(
J'ai essayé de mettre System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("pt-BR");
là, mais, rien ne se passe ...
excusez-moi mais qu'est-ce que le "c" dans StringFormat = c veut dire? –
Jetez un coup d'œil à la [Formatage numérique standard à partir de MSDN] (http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx). "C" est pour la monnaie. – m1m1k
"C" ou "c" Devises Résultat: La valeur de la devise. Pris en charge par: Tous les types numériques. Spécificateur de précision: Nombre de chiffres décimaux. Spécificateur de précision par défaut: défini par System.Globalization.NumberFormatInfo. Plus d'informations: Le spécificateur de format de devise ("C"). 123.456 ("C", en-US) -> 123,46 $ 123,456 ("C", fr-FR) -> 123,46 € 123,456 ("C", ja-JP) -> ¥ 123 -123,456 ("C3", en-US) -> (123.456) -123.456 ("C3", fr-FR) -> -123.456 € -123.456 ("C3", ja-JP) -> - ¥ 123.456 – m1m1k