Csharp/C#教程:在TextBox上使用StringFormat绑定到double分享


在TextBox上使用StringFormat绑定到double

我正在使用WPF的TextBox,将Text属性上的绑定设置为ViewModel上的double。

我的XAML看起来像这样:

 

不幸的是,当我将UpdateSourceTrigger切换到PropertyChanged并输入值12345 ,我得到12,354.00编辑 :注意4之前的5)。 这是在.NET格式化程序添加23之后将光标保持在同一位置的结果。

如何在将UpdateSourceTrigger设置为PropertyChanged的情况下使用StringFormat?

注意:这只发生在.NET 4中。

通常,您不希望UpdateSourceTriggerTextBox.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

(0)
上一篇 2021年12月30日
下一篇 2021年12月30日

精彩推荐