You are right. It did not trigger my change handler. And if there is a normal one, probably that did it.
After reading more about it on the internet, it seems using val combined with calling change() is the correct answer. Hence marking it as the solution for future reference.