В настоящее время я разрабатываю простой редактор как часть процесса обучения. В основном это иерархическая древовидная структура полигонов-линий-точек, реализованная в модели данных. Мне нужно отобразить эти данные в двух видах
Первое представление: иерархические данные в древовидном представлении
Второй вид: отображаемая геометрия на экране
Следуя шаблону MVVM, я реализовал классы представления модели вокруг модели данных (представление точечной модели, представление линейной модели и т. Д.). В древовидном представлении я использую иерархические шаблоны данных для правильного отображения определенных данных. Во втором представлении мне нужно отобразить текущее состояние геометрии, в настоящее время это всего лишь одна оболочка представления модели вокруг полигонального класса данных, которая перемещает все дочерние элементы и отображает их в методе onRender. В этом случае я использую несколько моделей представлений для одних и тех же данных, обе для совершенно разных целей.
При внесении некоторых изменений в древовидную модель (например, добавление точек) возникает проблема, приводящая к изменению базовой модели данных. Однако модель второго представления напрямую не наблюдает данные в представлении модели, она обновляет представление рендеринга, только если я изменяю ее классы представления модели. Есть ли какое-то элегантное решение для одновременного обновления обеих моделей представлений?