fun*_*bro 4 mvvm windows-phone-7
我有一个TextBox
在我的应用程序中,并ApplicationBarIconButton
在ApplicationBar
其中充当"提交"的内容TextBox
.
TextBox
使用虚拟键盘进行编辑时,ApplicationBarIconButton
SIP下方仍然可以看到,因此您可以直接提交而无需关闭键盘:好!
但是,单击该按钮时,TextBox
绑定到的视图模型不会更新.
我发现别人同样的问题在这里,和他们使用的手动更新的视图模型的非常讨厌的解决办法TextBox
的TextChanged
事件.
删除使用数据绑定视图模型的所有优雅!
这是WP7中的错误吗?
或者有一个更好的方法,我还没有找到?
cal*_*lum 13
问题是silverlight绑定不支持UpdateSourceTrigger的PropertyChanged值.这意味着默认情况下,当TextBox失去焦点时,TextBox将更新绑定到Text的属性,唯一的另一种可能性是在代码中显式更新它,如链接中的示例所示.
这里只有两个选项:单击按钮时更新绑定,或单击按钮时从TextBox中移除焦点.
我通常更新TextChanged事件的绑定.我使用扩展方法来执行此操作:
public static void UpdateBinding(this TextBox textBox)
{
BindingExpression bindingExpression =
textBox.GetBindingExpression(TextBox.TextProperty);
if (bindingExpression != null)
{
bindingExpression.UpdateSource();
}
}
Run Code Online (Sandbox Code Playgroud)
允许我在后面的代码中调用它:
textBox.UpdateBinding();
Run Code Online (Sandbox Code Playgroud)
您也可以使用自定义行为.
归档时间: |
|
查看次数: |
3143 次 |
最近记录: |