C # 'MVVM Наблюдаемые прокси или Android LiveData? - PullRequest
0 голосов
/ 01 декабря 2019

Я занимаюсь разработкой приложения C # wpf mvvm, в котором данные модели представлены иерархиями, и мои модели представления должны наблюдать части иерархий между ними. Я хотел бы предложить дизайн, который облегчает поддержку приложения при изменении структурных иерархий модели.

Пример:

Модель имеет иерархию A-> B->C-> D. ViewModel хочет получить уведомления об изменениях D и B. В какой-то момент другая ViewModel устанавливает A в совершенно новое значение, и все другие наблюдающие модели ViewModel должны быть уведомлены о том, что их соответствующие D и B больше не действительны.

Моя идея дизайна пока что: я исправил иерархию моделей, заменив прямую ссылку уникальным идентификатором, таким как GUID. Когда ViewModels хочет получить экземпляр D, он на самом деле должен попросить репозиторий получить наблюдаемый прокси-сервер D. Когда происходит запись в A, наблюдаемый прокси-сервер получает уведомление об этом, и поэтому ViewModel также получает уведомление. Жизненный цикл проксируемого прокси привязан к ViewModel, который его использует, например, ViewModel решает, когда наблюдаемый прокси будет удален.

Возможно, уже есть шаблон, который решает эту проблему в C # MVVM? Я видел, что Android Jetpack представил LiveData, и он выглядит очень похоже на то, что я пытаюсь сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...