The view model system worked a lot better, before the attempt was made to make view models persistent. The aim was to improve performance, by keeping the frequency of object instantiation low.
Unfortunately, now problems arose:
[x] Lingering child view models.
[ ] No solution for view model updates when an array changes.
For example, adding or removing an element from an array that is view model relevant (such as the list of asset IDs in the luggage list) doesn't automatically trigger view model updates.
No unified solution exists for child view models that are based on an array. When that array changes, the child view models based on it must also be re-evaluated.
[ ] No unified solution for efficient cascading updates.
For example, when removing an element from an array, it is common that a specific child view model must also be removed. This should ideally happen in one update.
[x] View state should be written out on dispose and retrieved on update.
This is most likely no longer relevant, as some of the changes from back then have since been reverted or reworked so much that a new assessment would be necessary.
The view model system worked a lot better, before the attempt was made to make view models persistent. The aim was to improve performance, by keeping the frequency of object instantiation low.
Unfortunately, now problems arose: