1

我在 Code behinde 中创建了一个文本框并将其绑定到一个双属性。

                TextBox t = new TextBox();
                t.Width = 80;
                t.DataContext = s;         
                Binding binding = new Binding();
                binding.Mode = BindingMode.TwoWay;
                binding.Path = new PropertyPath("Value");
                BindingOperations.SetBinding(t, TextBox.TextProperty, binding);

当我输入像 45,45(逗号)这样的值时,它被解析为 4545。

如果我输入 45.45(点),它会被正确解析为 45,45。

我使用德语设置,我的十进制Sperator是,

我究竟做错了什么?

4

3 回答 3

3

尝试设置绑定。ConverterCulture到您的目标文化。

例如

 binding.ConverterCulture = CultureInfo.CurrentCulture;
于 2012-03-14T13:08:14.020 回答
2

一个明确的、非文化特定的解决方案是将其添加到您的 App.xaml.cs 中,通常 WPF 将始终使用正确的文化 - 区域设置:

    static App()
    {
        FrameworkElement.LanguageProperty.OverrideMetadata(
            typeof(FrameworkElement),
            new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
    }
于 2012-03-14T13:12:12.843 回答
-1

你试过了吗

System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-DE");
于 2012-03-14T13:05:56.267 回答