1. 描述:
TextBox中文本变化不会实时更改Bingding的值。
2. 原因:
TextBox是默认失去焦点后,绑定值才发生改变。
3. 解决:
设置Binding的UpdateSourceTrigger属性值为 PropertyChanged。
4. 示例:
<TextBox Text="{Binding ModelNameSearch, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="TextChanged">
<i:InvokeCommandAction Command="{Binding TextChanged_ModelSearch}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
注:控件的EventTrigger,用绑定的形式实现,需要:
(1)先安装Behavior的依赖库:Microsoft.Xaml.Behaviors.Wpf。
(2)引用 xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
(3)EventName 写事件触发事件,如上例“TextChanged” “ValueChanged” “LostFocus”...
(4)Command 写ViewModel中的RelayCommand,类似于Button的触发写法。