有没有一种方法可以让Windows Phone 7中的TextBox在用户键入每个字母而不是失去焦点后更新绑定?
就像下面的WPF TextBox一样:
<TextBox Text="{Binding Path=TextProperty, UpdateSourceTrigger=PropertyChanged}"/>
WP7的Silverlight不支持您列出的语法。而是执行以下操作:
<TextBox TextChanged="OnTextBoxTextChanged" Text="{Binding MyText, Mode=TwoWay, UpdateSourceTrigger=Explicit}" />
UpdateSourceTrigger = Explicit在这里是明智的选择。 它是什么? 显式:仅在调用UpdateSource方法时更新绑定源。当用户离开时,它为您节省了一个额外的绑定集TextBox。
UpdateSourceTrigger = Explicit
UpdateSource
TextBox
在C#中:
private void OnTextBoxTextChanged( object sender, TextChangedEventArgs e ) { TextBox textBox = sender as TextBox; // Update the binding source BindingExpression bindingExpr = textBox.GetBindingExpression( TextBox.TextProperty ); bindingExpr.UpdateSource(); }