...
- Walk the tree, and find all bindings.
- Check each binding for a changed value, i.e. where the model value differs from the control value.
- For items that have the same value: ignore
- We now have a list of bindings whose value changed. Order these bindings as follows:
- A "deeper" binding comes before a "higher" binding
- Bindings at the same "level" execute in order of dom traversal.
- Now bind all values as per the above ordering.
The UI should act as follows:
- When the country changes the City should be set to the 1st city of that country in the city list
- When the city changes the country should be updated.
We bind these controls to two properties in our model, called "country" and "city". The model ensures that:
...
...
By ordering like this most binding issues should resolve themselves automatically.