I was wondering if it's possible to raise a PropertyChanged
event when the user pauses while typing text into a TextBox
? Or more specifically, I want to run a method X
seconds after the user stops typing in a TextBox.
For example, I have a form with a TextBox and nothing else. The user types in a 1-9 digit Id value into the TextBox, a fairly resource-intensive background process loads the record.
I do not want to use the UpdateSouceTrigger=PropertyChanged
because that would cause the resource-intensive background process to run whenever a character gets typed, so a 9-digit ID number starts off 9 of these processes.
I also don't want to use UpdateSourceTrigger=LostFocus
because there is nothing else on the form to make the TextBox lose focus.
So is there a way to cause my background process to run only after the user pauses when typing in the Id number?
Set UpdateSourceTrigger=PropertyChanged
, and then each time the property changes, kick off a timer for the delay you'd like. If the property is changed again prior to the timer tick, then cancel the old timer and kick off a new one. If the timer does tick, then you know the property hasn't changed in X seconds, and you can kick off the background process.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With