我将视图模型中的文本属性绑定到 App Shell 滑出菜单的 FlyoutHeader 视图
初始化应用程序时,所有更新事件都会正确触发,但是用户可以访问一个页面来更新他们的信息
我遇到的问题是当您导航到此页面并执行更新时,FlyoutHeader 视图没有更新以响应视图模型
滑出菜单是否有特定的东西,这意味着一旦加载它,它就不会响应 onpropertychanged ... 而改变?似乎不对
来自 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");
在我的调试日志中,我可以看到 LocationsViewModel 中的绑定对象“用户”确实触发了 OnPropertyChanged 以响应在此页面上所做的更改,但随后“返回”并打开弹出菜单没有任何改变,我可以看到 PropertyChanged 没有不为那个观点开火吗?
我认为 OnPropertyChanged 绑定的全部意义在于即使加载了视图,也会发生更新以导致视图响应?