Xamarin Forms - запоминает объект класса через несколько страниц с вкладками и уведомляет несколько страниц с вкладками об изменении состояния объекта - PullRequest
0 голосов
/ 08 марта 2020

Мой проект форм xamarin имеет структуру страницы с вкладками. На этой странице с вкладками у меня есть несколько записей, чтобы изменить состояние объекта.

Допустим, у меня есть автомобильный объект, и этот автомобильный объект должен обновляться с нескольких экранов с вкладками. И скажем, у меня есть 1 страница, где я меняю цвет машины. Основываясь на этом изменении, я хочу показать цвет текста на другой странице. На обеих страницах есть собственная модель просмотра.

Используя шаблон MVVM, как мне добиться:

  • Запоминание объекта через несколько экранов с вкладками
  • Изменение свойства должно вызывать события поэтому несколько экранов могут обновлять свои значения

На данный момент я реализовал одноэлементную службу, которая имеет объект car. В моделях представления я ссылаюсь на цвет peoprty от объекта в сервисе. Когда метод SET вызывается из модели представления на основе связывания форм xamarin, вызывается метод OnPropertyChanged. Но это не работает, работает только привязка в том же представлении, но другие представления не обновляются.

Этот код используется в нескольких моделях представления (для связывания с представлением)

    public string Color
    {
        get => _activityStateService.Car.Color;
        set
        {
            _activityStateService.Car.Color = value;
            OnPropertyChanged(nameof(Color));
        }
    }

Код, на который ссылаются несколько моделей:

public class ActivityStateService : IActivityStateService
{
    public Car car { get; set; }
}
...