Why would you want the property's get to fire on each keystroke?
Who cares if you update a string 50 times? What do you think happens with WPF controls? If you scroll down a combo box, you'll get a bunch of updates for each item too.
If you are binding to expensive setters, your design is wrong. In your example, it is perfectly fine to update a string property 50 times, but if that is also triggering 50 database updates, then thats an improper design.
You are trying to solve the wrong problem here I think .