简体   繁体   English

小数点在条目中被删除

[英]Decimal point is being removed in Entry

My converter is the following我的转换器如下

public class DecimalConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value is decimal)
                   return value.ToString ();
        return value;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
       decimal dec;
       if (decimal.TryParse(value as string, out dec))
           return dec;
       else
           return 0;
    }
}

When I enter a number当我输入一个数字

55 号

Next entered the separator接下来进入分隔符

另存为 55

When I enter the decimal当我输入小数时

在此处输入图像描述

ends as 55以 55 结尾

In the view before在之前的视图中

图片

after

在此处输入图像描述

Resource:资源:

   <support:DecimalConverter x:Key="DecimalConverter" />

Entry defined in the XAML XAML 中定义的条目

 <Entry
            BackgroundColor="{TemplateBinding BackgroundColorAmountEntry}"
            IsEnabled="{TemplateBinding IsByAmount}" Keyboard="Numeric"
            Text="{TemplateBinding CommissionWithTaxAmount,
            Converter={StaticResource DecimalConverter}}" />

How could I solve it if I want it to be according to the culture?如果我希望它符合文化,我怎么能解决它?

You can enforce "en-us" culture for TryParse()您可以为TryParse()强制执行“en-us”文化

public class DecimalConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value is decimal)
                   return value.ToString ();
        return value;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
       decimal dec;
        var style = NumberStyles.Number | NumberStyles.AllowDecimalPoint;
        var cultureEnUs = new CultureInfo("en-US");
        if (decimal.TryParse(value as string, style, cultureEnUs, out dec))
           return dec;
       else
           return 0;
    }
}

Alternative approach替代方法

When language is set to French, decimal point separator ',' is ignored in binding to a double property当语言设置为法语时,小数点分隔符“,”在绑定到双属性时将被忽略

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM