gpt4 book ai didi

windows-phone-7 - 当单击 ApplicationBar 中的按钮时,来自 TextBox 的两种方式数据绑定(bind)不会更新

转载 作者:行者123 更新时间:2023-12-04 22:07:21 24 4
gpt4 key购买 nike

我有一个 TextBox在我的应用程序中,以及 ApplicationBarIconButtonApplicationBar它充当 TextBox 内容的“提交” .

编辑 TextBox 时使用虚拟键盘,ApplicationBarIconButton在 SIP 下方仍然可见,因此您可以直接提交而无需关闭键盘:太好了!

但是,当单击按钮时,TextBox 的 View 模型已绑定(bind) 不是 更新。

我发现其他人有同样的问题here ,并且他们使用了手动更新 TextBox 上的 View 模型的非常讨厌的解决方法。的TextChanged事件。

消除了使用数据绑定(bind) View 模型的所有优雅!

这是 WP7 中的错误吗?

还是我还没有找到更好的解决方法?

最佳答案

问题是silverlight 绑定(bind)不支持UpdateSourceTrigger 的PropertyChanged 值。这意味着默认情况下,当 TextBox 失去焦点时,TextBox 将更新绑定(bind)到 Text 的属性,唯一的另一种可能性是在代码中显式更新它,如链接中的示例中所做的那样。

您实际上只有两个选择:单击按钮时更新绑定(bind)或单击按钮时从 TextBox 中移除焦点。

我通常更新 TextChanged 事件的绑定(bind)。我使用扩展方法来做到这一点:

public static void UpdateBinding(this TextBox textBox)
{
BindingExpression bindingExpression =
textBox.GetBindingExpression(TextBox.TextProperty);
if (bindingExpression != null)
{
bindingExpression.UpdateSource();
}
}

允许我在后面的代码中调用它:
textBox.UpdateBinding();

您也可以为此使用自定义行为。

关于windows-phone-7 - 当单击 ApplicationBar 中的按钮时,来自 TextBox 的两种方式数据绑定(bind)不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8168861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com