在TextBox上使用StringFormat绑定到double
我正在使用WPF的TextBox,将Text属性上的绑定设置为ViewModel上的double。
我的XAML看起来像这样:
不幸的是,当我将UpdateSourceTrigger切换到PropertyChanged并输入值12345
,我得到12,354.00
( 编辑 :注意4之前的5)。 这是在.NET格式化程序添加2
到3
之后将光标保持在同一位置的结果。
如何在将UpdateSourceTrigger设置为PropertyChanged的情况下使用StringFormat?
注意:这只发生在.NET 4中。
通常,您不希望UpdateSourceTrigger
在TextBox.Text
绑定上成为PropertyChanged
,因为每次按下键时都会触发validation和更改通知。
如果你这样做只是为了如果用户点击Enter它将在处理save命令之前保存该值,然后我建议挂钩到PreviewKeyDown
事件并手动更新源,如果按下的键是Enter(通常我做这个附属物)
private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { var obj = sender as UIElement; BindingExpression textBinding = BindingOperations.GetBindingExpression( obj, TextBox.TextProperty); if (textBinding != null) textBinding.UpdateSource(); } }
但话虽如此,如果您仍想使用UpdateSourceTrigger=PropertyChanged
,则在显示值时考虑使用格式,但在用户编辑时将其删除。
上述就是C#学习教程:在TextBox上使用StringFormat绑定到double分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1012484.html