Задать вопрос
@logosan

Как передавать данные между ViewModel?

Возникла необходимость передать данные из одной ViewModel в другой, каким образом это делается?
  • Вопрос задан
  • 2256 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
newross
@newross
Product owner
Есть несколько вариантов:
- Messenger;
- Сервисный класс;
- По ссылке на другую ViewModel.
Ответ написан
Комментировать
Nipheris
@Nipheris Куратор тега C#
Почему возникла такая необходимость? Как соотносятся эти две ViewModel друг с другом?
Я обычно использую тот же PropertyChanged, чтобы слушать изменения свойств одной viewmodel в другой (например, если одна viewmodel для элемента заказа, а другая - для вывода суммы заказа). Это для случая, когда вьюхи связаны друг с другом.
Если вьюхи совсем никакого отношения не имеют друг к другу, то может тогда через уровень данных это сделать (репозиторий, например)? У нас в проекте репозиторий на клиенте хранит DTO, которые возвращает веб-сервис. Когда содержимое этих объектов обновляется (они регулярно перезапрашиваются + перезапрашиваются после PUT/PATCH операций), репозиторий генерит ивент, на который подписаны вьюхи. Вьюхи уже сами определяют, что изменилось, и, в свою очередь, генерят PropertyChanged.

Если это все не подходит, опишите ситуацию подробно, сейчас только понятно, что у вас есть две ViewModel, и больше ничего.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы