我有一個Textbox
,它有一個KeyDown
事件。該事件與ViewModel中的事件處理程序綁定。下面是示例代碼:KeyDown事件的延遲計時器
<TextBox x:Name="textBox" Text="{Binding TextBoxText, UpdateSourceTrigger=PropertyChanged}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="KeyDown">
<cmd:EventToCommand Command="{Binding Path=TextBoxKeyDownEvent}" PassEventArgsToCommand="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
<TextBox.InputBindings>
這是事實,一旦用戶開始在texbox寫作,在視圖模型後端調用事件處理程序。但我不想爲每個KeyDown操作調用事件處理程序。我想在用戶開始在文本框中輸入並停止至少N毫秒時調用事件處理函數。這意味着我需要爲事件設置一個延遲計時器。任何人都可以請指導我如何在MVVM中實現這一點?
感謝您的建議。但是我無法在TextProperty Change事件中使用它。因爲文本可以由程序在內部進行更改。所以這裏的事件處理程序只有在文字變化通過寫入纔會發生。這就是爲什麼我需要與keydown事件合作。 – ifti24 2014-09-27 14:10:38
@ ifti24請參閱我的編輯 – 2014-09-27 14:15:16
我想我沒有讓你明白目的。我有一個TextBox,並且在每個Keypress的TextBox中都有一個命令綁定。 Binded方法調用視圖和視圖從數據庫中獲取數據。但我不希望每個按鍵都會調用綁定的方法。我想,如果用戶停止鍵入一定的時間(如500毫秒),只有綁定的方法將被調用。 – ifti24 2014-09-27 14:42:23