десятичное значение удалено после проверки @ WPF Textbox - PullRequest
1 голос
/ 14 марта 2012

Я создаю текстовое поле в коде и привязываю его к двойному свойству.

                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,

Что я делаю не так?

Ответы [ 3 ]

3 голосов
/ 14 марта 2012

Попробуйте установить привязку. ConverterCulture для вашей целевой культуры.

Например

 binding.ConverterCulture = CultureInfo.CurrentCulture;
2 голосов
/ 14 марта 2012

Ясное, не зависящее от культуры решение - добавить это в свой App.xaml.cs, и обычно WPF всегда будет использовать правильную культуру - региональные настройки:

    static App()
    {
        FrameworkElement.LanguageProperty.OverrideMetadata(
            typeof(FrameworkElement),
            new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
    }
0 голосов
/ 14 марта 2012

Вы пробовали

System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-DE");
...