在LostFocus上提交更改

时间:2013-03-28 08:10:24

标签: wpf xaml binding

为什么单击另一个TextBox不会引发当前(绑定)LostFocus的{​​{1}}事件,从而提交对数据源的更改?我的TextBox未设置,因此我假设默认情况下WPF会在UpdateSourceTrigger上提交更改。

当我使用TAB键而不是鼠标单击执行相同操作时,我的更改会正确提交。

修改

我刚刚发现点击同一父容器中显示的LostFocus es已提升TextBox并提交更改,但是当我点击位于主LostFocus的{​​{1}}时{1}}我的屏幕,然后似乎显示出这种有问题的行为。

编辑2

虽然我已将BastiOnWpf的帖子标记为下面的正确答案,但我找到了解决此问题的同样好或更好的解决方案。解决方案是简单地设置

TextBox

在XAML中的ToolBar

1 个答案:

答案 0 :(得分:0)

问题是,当单击/聚焦菜单或其内容时,文本框实际上确实失去焦点。 这是因为工具栏位于另一个UIContext中 您当然可以将UpdateSourceTrigger更改为PropertyChanged,但这并非总是可行的解决方法:

以下是解决问题的一些方法: Binding with UpdateSourceTrigger==LostFocus do not fire for Menu or Toolbar interaction

这也是将工具栏绑定到当前UI的ViewModel不起作用的原因。