wpf - 数字向后显示?

标签 wpf data-binding binding

看了用户的投诉我都不相信... 在绑定(bind)的 WPF 文本框中键入 .123 会显示 .321! 它现在已修复,但我想知道这是否可以归类为 WPF 错误?

当文本框绑定(bind)到 Entity Framework 双字段且 UpdateSourceTrigger 绑定(bind)模式设置为 PropertyChanged 时,会出现此问题。在小数点后键入每个数字,光标将移回小数点后,导致数字倒退。当我将 UpdateSourceTrigger 放回其默认的 LostFocus 时,问题(可以理解)消失了。

那么,这是一个错误吗?是否有一种解决方法可以让 UpdateSourceTrigger 在绑定(bind)到双字段时成为 PropertyChanged?

最佳答案

TextBox 设置为 LostFocus 是有原因的而不是 PropertyChanged .当您将其绑定(bind)到 EF double 时,验证会导致值重置,进而可以重置光标位置。

使用 UpdateSourceTrigger.PropertyChanged 使 TextBox 正常运行需要大量的自定义逻辑,因为您需要在绑定(bind)更新之前跟踪事件中的光标位置,并在之后恢复。

不过,我怀疑这会被认为是一个错误,因为 WPF 将 TextBox 设置为 UpdateSourceTrigger.LostFocus .如果默认设置不同,我同意这将是一个错误 - 但考虑到默认设置,我怀疑团队会将其视为一个错误。

关于wpf - 数字向后显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5394170/

相关文章:

data-binding - Vue.js:将值插入文本字段但不绑定(bind)它

c# - 如何为数据绑定(bind)组合框预定义组合框项?

c# - 如何为绑定(bind)路径传递嵌入式控件的属性?

wpf - 使用 ViewModel 中的多态性绑定(bind)到具有 XAML 中的参数的方法

javascript - jQuery: .click() 和 .on ("click"之间的区别)

c# - 显示椭圆的半径 - WPF

c# - WPF 可选曲线

c# - WPF 使用 € 符号将字符串格式化为货币

c# - 如何执行容器ViewModel与包含的ViewModel之间的通信?

asp.net - 下拉列表 "has a SelectedValue which is invalid because it does not exist in the list of items"