I think you are wrong: the Leave event is fired every time the textbox loses the input focus to another control.
I suspect that it appears like it doesn't, because your getItemList code sets the same values into the other two textboxes each time.
Try it: Add to the top of the event handler:
Console.WriteLine("Leave");
And watch the output pane while you run your app in the debugger.
I've never had a problem with the Leave event, and I'm pretty sure that any significant problem like it not working would have been spotted by now!