【问题标题】:Force Binding Update Silverlight强制绑定更新 Silverlight
【发布时间】:2011-02-09 00:28:23
【问题描述】:

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

有什么便宜的技巧可以解决这个问题吗? 最后,我总是可以用旧的手动方式从我的文本框中获取值并更新我的对象,但最好让绑定为我做这件事。

更新

我的网格包含两个文本框。如果用户单击网格(MouseButtonUp 事件)然后我保存更改。但是在我的 MouseButtonUp 事件处理程序中,数据上下文还不是最新的。我想这是因为文本框只有在失去焦点时才会更新。

【问题讨论】:

    标签: silverlight data-binding


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您也可以捕获 TextInput 事件(当用户在文本框内按下回车键时它会触发) 然后将焦点更改为第二个文本框。失去焦点将更新绑定值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-12
        • 2013-03-07
        • 2013-09-01
        • 2011-05-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多