代码之家  ›  专栏  ›  技术社区  ›  nikotromus

在绑定的文本框值更新之前激发keyup

  •  0
  • nikotromus  · 技术社区  · 6 年前

    我有一个文本框,文本值绑定到模型。文本框有一个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)时,keyup甚至会触发,我的模型中文本框的boud值现在是8。

    因此,keyup事件在VisitorTeamStats.Fouls更新的绑定值之前触发。如何将绑定值设置为首先更新,或以其他方式将该值从文本框传入keyup事件。

    提前谢谢。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Ali Doustkani    6 年前

    我认为你的问题是触发更新。请尝试以下代码,看看会发生什么:

     <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>