如何在注销或返回Xamarin表单的同一页面时更新Shell页面的内容



我使用的是Xamarin表单Shell,我有一个登录名(ShellItem(,它是第一个出现的页面,当会话启动时,它会显示一个主页(FlyoutItem(,显示用户的点数数据。

问题是,当我打开汉堡菜单的其他页面并返回时,它们仍然在我停止的地方打开,当我注销并与另一个用户一起进入时也是如此,上一个会话的页面仍然使用来自上一个用户的相同数据打开。现在,我如何在每次您必须再次导航到同一页面时更新Shell的内容页面,以便再次加载启动会话的新用户的新数据。

我试过用从xaml.cs

protected override void OnAppearing()
{
base.OnAppearing();
ShowData();
}

但是它不允许我调用加载数据的viewModel的方法,因为View不应该知道viewmModel

当我使用弹出按钮创建新的应用程序(文件->新项目(时,Xamarin给了我示例代码,直到现在我仍在使用它,下面是代码(或者你可以尝试创建新项目并从那里看到它(:

public partial class ItemsPage : ContentPage
{
ItemsViewModel _viewModel;
public ItemsPage()
{
InitializeComponent();
BindingContext = _viewModel = new ItemsViewModel();
}
protected override void OnAppearing()
{
base.OnAppearing();
_viewModel.OnAppearing();
}
}

在ItemsViewModel中:

public void OnAppearing()
{
//do your code
}

最新更新