Я связываю свойство текста из модели представления с представлением FlyoutHeader выдвижного меню оболочки приложения.
Все события обновления корректно запускаются при инициализации приложения, однако есть страница, которую пользователь может go для обновления их информации
Проблема, с которой я столкнулся, заключается в том, что при переходе на эту страницу и выполнении обновления представление FlyoutHeader не обновляется в ответ на модель представления
Is что-то указывает c на выдвигающееся меню, что означает, что как только оно загружено, оно не изменяется в ответ на изменение свойства ...? Не кажется правильным
Из AppShell xaml
<Shell.FlyoutHeader>
<views:FlyoutHeader />
</Shell.FlyoutHeader>
Из кода Flyoutheader за
private LocationsViewModel _vm;
public FlyoutHeader()
{
InitializeComponent();
this.BindingContext = new LocationsViewModel();
}
protected override void OnBindingContextChanged()
{
_vm = BindingContext as LocationsViewModel;
_vm.PropertyChanged += _vm_PropertyChanged;
_vm.SetUserLocation();
}
Пользователь переходит на страницу «Изменить местоположение» с помощью кнопки в представлении FlyoutHeader , называемый так
await Shell.Current.GoToAsync("changelocation");
В моем журнале отладки я вижу, что объект привязки 'user' в LocationsViewModel запускает OnPropertyChanged в ответ на изменение, внесенное на этой странице, но затем возвращается назад и при открытии всплывающего меню ничего не изменилось, и я вижу, что PropertyChanged не запускается для этого представления?
Я думал, что весь смысл привязки OnPropertyChanged был даже при загруженном представлении, когда происходит обновление, которое вызывает ответ для представления?