最简单的方法是将焦点设置在某处。您可以立即重新设置焦点,但将焦点设置在任何位置都会触发任何类型的控件上的 LostFocus-Event 并使其更新其内容:
IInputElement x = System.Windows.Input.Keyboard.FocusedElement;
DummyField.Focus();
x.Focus();
另一种方法是获取焦点元素,从焦点元素中获取绑定元素,然后手动触发更新。TextBox 和 ComboBox 的示例(您需要添加需要支持的任何控件类型):
TextBox t = Keyboard.FocusedElement as TextBox;
if ((t != null) && (t.GetBindingExpression(TextBox.TextProperty) != null))
t.GetBindingExpression(TextBox.TextProperty).UpdateSource();
ComboBox c = Keyboard.FocusedElement as ComboBox;
if ((c != null) && (c.GetBindingExpression(ComboBox.TextProperty) != null))
c.GetBindingExpression(ComboBox.TextProperty).UpdateSource();