我有一个页面,其中包含一些用于数据输入的文本框。文本框的绑定(bind)设置为TwoWay
。仅当文本框失去焦点时,我的 View 模型中的数据才会更新。如果我单击按钮(例如“保存”),并且文本框仍然具有焦点,则保存事件时我的 View 模型中的文本框中的更改不会更改。
有没有办法让绑定(bind)在失去焦点之前保存文本框的值?或者我需要在保存事件中做一些事情吗?
最佳答案
我假设您的“保存”按钮是一个ApplicationBarButton(不是普通按钮)。对于普通按钮,它会起作用,因为它们获得焦点,因此数据绑定(bind)将会启动。
对于手机上的 ApplicationBarButtons 来说,情况略有不同,因为它们不会将焦点从客户端应用程序上移开。为了确保单击“保存”按钮时启动数据绑定(bind),您可以在处理程序中添加以下代码:
object focusObj = FocusManager.GetFocusedElement();
if (focusObj != null && focusObj is TextBox)
{
var binding = (focusObj as TextBox).GetBindingExpression(TextBox.TextProperty);
binding.UpdateSource();
}
关于xaml - TextBox Binding TwoWay 在失去焦点之前不会更新 WP7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5569768/