为什么单击另一个TextBox不引发当前(绑定) TextBox的LostFocus事件,从而提交对数据源的更改?我的UpdateSourceTrigger没有设置,所以我假设在默认情况下,WPF会在LostFocus上提交更改。
当我使用TAB键而不是鼠标单击做相同的事情时,我的更改将被正确地提交。
编辑
我刚刚发现,单击出现在同一个父容器中的TextBoxes确实会引发LostFocus并提交更改,但是当我单击位于屏幕主ToolBar中的TextBox时,它似乎会显示出这种问题行为。
编辑2
虽然我已经将BastiOnWpf的帖子标记为下面正确的答案,但我找到了一个同样好或更好的解决方案来解决这个问题。解决方案是简单地设置
FocusManager.IsFocusScope="False"在你的ToolBar上的XAML。
发布于 2013-03-28 11:18:53
问题是,当单击菜单或其内容时,文本框实际上并没有失去焦点。这是因为工具栏驻留在另一个UIContext中。
当然,您可以将UpdateSourceTrigger更改为PropertyChanged,但这并不总是可行的解决办法:
下面是一些解决问题的方法:Binding with UpdateSourceTrigger==LostFocus do not fire for Menu or Toolbar interaction
这也是为什么将工具栏绑定到当前UI的ViewModel无法工作的原因。
https://stackoverflow.com/questions/15676905
复制相似问题