将双精度值绑定到文本框

gi原

我有一个ObservableCollection填充DatagridDGCommands和一些文本框的Text属性,如下所示:

Text="{Binding SelectedItem.Costs,
Mode=TwoWay,
ElementName=DGCommands,
UpdateSourceTrigger=PropertyChanged}"

好吧,现在当我从一个文本框解析一个double值时,例如:

bool costs_valid = double.TryParse(txtboxCosts.Text, out _costs) // 1,8 i get 18;

我试图用这种方法解决问题,但是我不确定这是否是最好的解决方案:

public static double DoubleParseCostum(string val)
{
        double res = 0;
        bool res_valid = double.TryParse(val, out res);
        if (val.ToString().Contains(_DECIMAL_)) return res;
        else
        {
            if ("." != _DECIMAL_ && val.Contains(".")) return double.Parse(val.Replace(".", _DECIMAL_));
            if ("," != _DECIMAL_ && val.Contains(",")) return double.Parse(val.Replace(",", _DECIMAL_));
        }
        return res;
}

哪里

_DECIMAL_ = Convert.ToChar(System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator).ToString();

编辑:

将标题从“将字符串解析为double给Int更改为当前名称,因为真正的问题在于绑定而不是解析,因为当我想将1.8更改为1.8时,由于失去焦点,我得到18。

理查迪西莫

这是一个长镜头...我想知道您实际上要解决的根本问题(未意识到)是否是所有WPF应用程序默认都使用“ en-US”语言环境。您可以通过以下方法在应用程序启动时解决此问题:

FrameworkElement
   .LanguageProperty
   .OverrideMetadata(
    typeof(FrameworkElement),
    new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentUICulture.IetfLanguageTag)));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章