如何强制更新对象的DataContext绑定?我正在使用表格上的事件,但在我的事件被触发之前,绑定更新并未被处理。
有什么小技巧可以解决这个问题吗? 最后我总是可以按照旧的手动方式从文本框中获取值并更新我的对象,但让绑定代替我完成会更好。
更新
我的表格包含两个文本框。如果用户点击表格(MouseButtonUp事件),那么我将保存更改。但是在我的MouseButtonUp事件处理程序中,数据上下文还没有更新。我想这是因为文本框只在失去焦点时才会更新。
如何强制更新对象的DataContext绑定?我正在使用表格上的事件,但在我的事件被触发之前,绑定更新并未被处理。
有什么小技巧可以解决这个问题吗? 最后我总是可以按照旧的手动方式从文本框中获取值并更新我的对象,但让绑定代替我完成会更好。
更新
我的表格包含两个文本框。如果用户点击表格(MouseButtonUp事件),那么我将保存更改。但是在我的MouseButtonUp事件处理程序中,数据上下文还没有更新。我想这是因为文本框只在失去焦点时才会更新。
通过在绑定上调用UpdateSource()方法,可以强制更新绑定的源。尝试在保存之前的MouseButtonUp事件处理程序中添加它。
就像这样:
BindingExpression binding = FirstTextBox.GetBindingExpression(TextBox.TextProperty)
if (null != binding) binding.UpdateSource();
你可以在MSDN上找到更多关于此的信息:http://msdn.microsoft.com/en-us/library/system.windows.data.bindingexpression.updatesource(VS.95).aspx
或者您可以捕获TextInput事件(当用户在文本框内按下Enter键时触发),然后将焦点更改为第二个文本框。失去焦点将更新绑定的值。