decimal在验证后被删除@WPF文本框
本文关键字:@WPF 文本 删除 验证 decimal | 更新日期: 2023-09-27 18:27:50
我在Codebehinde中创建了一个Textbox,并将其绑定到一个双属性。
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正确解析。
我使用德语设置,我的十进制分隔符是,
。
我做错了什么?
尝试设置绑定。将文化转换为目标文化。
例如
binding.ConverterCulture = CultureInfo.CurrentCulture;
一个明确的、非特定于区域性的解决方案是将其添加到您的App.xaml.cs中,通常WPF将始终使用正确的区域性设置:
static App()
{
FrameworkElement.LanguageProperty.OverrideMetadata(
typeof(FrameworkElement),
new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
}
你试过吗
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("de-DE");