Я борюсь с привязкой данных mvvm.Я не использую фреймворк для mvvm, у меня есть базовый базовый класс для моделей представлений.Я загрузил пример приложения с моей проблемой в GitHub, найдите ссылку ниже.
Моя проблема:
У меня есть простое приложение с меню вкладок.Есть 2 вкладки, называемые «TabA» и «TabB».Оба представления имеют простую модель представления.Модели представлений ссылаются на класс менеджера, который содержит данные.Класс Manager имеет объекты (объекты моего класса данных, который просто содержит строку и реализует INotifyPropertyChanged) в наблюдаемой коллекции.В диспетчере также есть свойство, которое ссылается на текущий выбранный объект (это только один из 2 объектов из списка).
"TabB" может выполнять 2 действия.Первый работает как положено.Если вы вводите новую строку в запись, нажимая первую кнопку, она обновляет строку текущего выбранного объекта и обновляет метку в TabA.
Что не работает?Со второй кнопкой в моем классе «TabB» вы переключаете значение текущего выбранного объекта в диспетчере.В отладчике я вижу, что значение изменилось, но метка в «TabA» не распознает, что она должна обновить значение.
Можете ли вы помочь мне?
https://github.com/dercdev/MVVM-Xamarin
С помощью Джейсона я получил что-то вроде этого:
В моем TabAViewModel я подписался наСобытие менеджера:
public TabAViewModel()
{
_mgr = Manager.Instance;
_mgr.PropertyChanged += new PropertyChangedEventHandler(obj_PropertyChanged);
}
Затем я поднимаю событие:
private void obj_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
OnPropertyChanged("CurrentData");
}
, которое обновляет метку представления.
Это нормально или есть "лучший" способ сделать это?