强制WPF在聚焦元素上提交更改

Joh*_*oon 7 data-binding wpf entity-framework commit visual-studio-2010

我正在使用VS2010,WPF和EF.我通过从Data Sources工具窗口中拖出一个实体来将控件放在我的窗口上.我使用了"详细信息"设置,因此我的实体由多个标签和文本框表示.我还添加了一个包含以下代码的按钮:

_context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

当我编辑数据时,无论哪个文本框具有焦点的更改都不会提交回数据库.其他一切都很好.如果我在点击保存按钮之前将焦点转移到另一个元素,它也会提交.我对DataGrid经历了同样的事情.

我知道我错过了一些简单的东西,但我能搞清楚.关于我缺少的任何想法?

谢谢!

Abe*_*cht 12

这是因为TextBox的默认Binding UpdateSourceTrigger是LostFocus.如果您修改所有绑定以将其设置为PropertyChanged,它将像您期望的那样工作:

<TextBox Text="{Binding SomeProperty, UpdateSourceTrigger=PropertyChanged}" />
Run Code Online (Sandbox Code Playgroud)

  • 为什么单击按钮时TextBox"失去焦点"?你能以编程方式强行推动这个吗? (2认同)