绑定文本框值更新之前触发keyup

时间:2018-08-22 18:49:48

标签: c# xaml mvvm

我有一个文本框,其文本值绑定到模型。文本框有一个KeyUp事件。这是xaml

<TextBox Text="{Binding VisitorTeamStats.Fouls}">
      <i:Interaction.Triggers>
           <i:EventTrigger EventName="KeyUp">
               <i:InvokeCommandAction Command="{Binding VisitorFoulsKeyUpCmd}"/>
            </i:EventTrigger>
      </i:Interaction.Triggers>
</TextBox>

一切都正确接线。这是发生了什么。启动应用程序时,文本框的初始值为0。当我输入新数字(例如8)时,OnCommand方法将0登记为模型中文本框的键值。当我在文本框中输入另一个数字(例如9)时,键盘会触发,并且模型中文本框的键值现在为8。

因此,keyup事件在VisitorTeamStats.Fouls更新的绑定值之前触发。如何键入绑定值以首先更新,否则如何将值从文本框中传递到keyup事件中。

谢谢。

1 个答案:

答案 0 :(得分:1)

我认为您的问题是触发更新。试试下面的代码,看看会发生什么:

 <TextBox Text="{Binding VisitorTeamStats.Fouls, UpdateSourceTrigger=PropertyChanged}">
   <i:Interaction.Triggers>
     <i:EventTrigger EventName="KeyUp">
       <i:InvokeCommandAction Command="{Binding VisitorFoulsKeyUpCmd}"/>
     </i:EventTrigger>
   </i:Interaction.Triggers>
 </TextBox>