In addition to what AlexKaras mentions, if you have your "WaitProperty" waiting for a value (say, 10), and each time you run the test that number increases, then yes, this won't work for you. Instead of waiting for a static value, you need to make your test "smarter".
We do something similar and here's how we check it.
1) BEFORE we execute the main part of the test, we navigate to the control and capture in a variable the value currently present.
2) We then perform the test actions.
3) Then we go back to that control and use the previously stored value to check for the new value. We use such checks as "is greater than" or, if we know that we're expecting an increase of 1, we do a check where we wait for the property to be the previously stored value + 1.