文本框上的键绑定(回车)不会更新模型

时间:2014-05-23 07:16:13

标签: wpf xaml mvvm-light

当我在文本框中按Enter键时,我尝试执行命令AddTodoCommand:

<TextBox x:Name="TbTodo" Text="{Binding TodoTask.Text, Mode=TwoWay}" >
      <TextBox.InputBindings>
        <KeyBinding Key="Enter" Command="{Binding AddTodoCommand}" />
      </TextBox.InputBindings>
</TextBox>

方法正确执行但属性TodoTask.Text为null。

当我使用此命令单击按钮时,模型具有值:

<Button x:Name="BtnAdd" Command="{Binding AddTodoCommand}" Content="Button" 

我认为按下按钮之前文本框会更改焦点并更新绑定。

输入后如何更新模型?

2 个答案:

答案 0 :(得分:2)

TextBox.Text的默认UpdateSourceTrigger是LostFocus。这就是为什么你不能在你的TodoTask.Text中看到“新”值。解决此问题的一种方法是将UpdateSourceTrigger更改为PropertyChanged

答案 1 :(得分:0)

您可以删除文本框输入绑定,并将Button xaml更改为使用 IsDefault 属性,如下所示,Enter将适用于此Button的任何文本框和{{1将被调用:

AddTodoCommand