强制绑定更新Silverlight

时间:2010-04-16 21:41:48

标签: silverlight data-binding

如何强制我的对象DataContext绑定更新?我在网格上使用了一个事件,并且在我的事件触发之前没有处理绑定更新。

任何廉价的技巧来解决这个问题? 最后,我总是可以通过旧的手动方式从我的文本框中获取值并更新我的对象,但是为我做绑定是很好的。

更新

我的网格包含两个文本框。如果用户单击网格(MouseButtonUp事件),则保存更改。但是在我的MouseButtonUp事件处理程序中,datacontext还不是最新的。我想是因为文本框只在焦点丢失时更新。

2 个答案:

答案 0 :(得分:31)

您可以通过调用绑定上的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

答案 1 :(得分:0)

另外,您可以捕获TextInput事件(当用户按下文本框内输入时将触发) 然后将焦点更改为第二个textBox。失去焦点将更新绑定值。