remove redundant code.
update values first before connect signals.
new test case was added.
use on_change handle directly, use try except instead of if else.
update from model to view only when bind signals.
test event model in different view backend library.