当我阅读用户投诉时,我不相信... 在绑定的WPF文本框中键入.123显示.321!现在已修复,但我想知道这是否可以分类作为一个WPF错误?
当文本框绑定到Entity Framework双字段且UpdateSourceTrigger绑定模式设置为PropertyChanged时,会出现此问题。对于小数点后输入的每个数字,光标移回到小数点后面,导致向后的数字。当我将UpdateSourceTrigger恢复为默认的LostFocus时,问题(可以理解)就消失了。
那么,这是一个错误吗?是否有一种解决方法可以在绑定到双字段时允许UpdateSourceTrigger成为PropertyChanged?
答案 0 :(得分:3)
TextBox设置为LostFocus
而不是PropertyChanged
是有原因的。将此绑定到EF double时,验证可能会导致值重置,从而可以重置光标位置。
使用UpdateSourceTrigger.PropertyChanged
使TextBox正确运行需要相当数量的自定义逻辑,因为您需要在绑定更新之前跟踪事件中的光标位置,然后恢复。
我怀疑这会被视为一个错误,因为WPF将TextBox设置为UpdateSourceTrigger.LostFocus
。如果默认值不同,我会同意这是一个错误 - 但是考虑到默认设置,我怀疑团队会将其视为一个。
答案 1 :(得分:0)
很抱歉这么晚来参加聚会,但是我们也有同样的问题,以防其他人碰巧看到这篇文章,我们有一个不同的解决方案......我们使用StringFormat作为TextBox:
Text="{Binding Path=YourDecimalOrDouble, StringFormat=\{0:#.#####\}, UpdateSourceTrigger=PropertyChanged}
上述内容应解决您遇到的问题......至少它是为我们做的。
无论如何,希望它有所帮助!