我正在使用 VS2010、WPF 和 EF。通过将实体拖出数据源工具窗口,我在窗口上放置了控件。我使用了“详细信息”设置,因此我的实体由多个标签和文本框表示。我还添加了一个带有以下代码的按钮:
_context.SaveChanges();
当我编辑数据时,无论哪个文本框具有焦点,都不会将更改提交回数据库。其他一切都很好。如果我在点击保存按钮之前将焦点转移到另一个元素,它也会提交。我在使用 DataGrid 时也经历过同样的事情。
我知道我错过了一些简单的东西,但我可以弄清楚。关于我所缺少的任何想法?
谢谢!
最佳答案
这是因为 TextBox 的默认 Binding UpdateSourceTrigger 是 LostFocus。如果您修改所有绑定(bind)以将其设置为 PropertyChanged,它将像您期望的那样工作:
<TextBox Text="{Binding SomeProperty, UpdateSourceTrigger=PropertyChanged}" />
关于wpf - 强制 WPF 提交对焦点元素的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2645803/