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

Posted

技术标签:

【中文标题】注销或返回 Xamarin 表单时如何更新 Shell 页面的内容【英文标题】:How to update the content of a Shell page when you log out or return to the same page Xamarin forms 【发布时间】:2021-05-25 16:31:13 【问题描述】:

我正在使用 Xamarin 表单 Shell,我有一个登录 (ShellItem),它是显示的第一页,当会话开始时,它会显示一个主页 (FlyoutItem),其中显示用户拥有多少点的数据。

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

我尝试从 xaml.cs 使用

protected override void OnAppearing()

    base.OnAppearing();
    ShowData();

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

【问题讨论】:

【参考方案1】:

当我使用弹出(文件 -> 新项目)创建新应用程序时,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
    

【讨论】:

谢谢老兄

以上是关于注销或返回 Xamarin 表单时如何更新 Shell 页面的内容的主要内容,如果未能解决你的问题,请参考以下文章

使用 Xamarin 跨平台打开开始表单并关闭所有其他表单

更新 ObservableCollection 无法正确更新 Xamarin 表单中的 ListView

使用 ShellContent xamarin 表单时添加导航返回箭头

在android和ios xamarin表单中单击或点击图像时如何显示数字(1,2,3)

WillEnterForeground 上的 Xamarin 表单更新 ListView

Xamarin 表单集合视图 ItemsSource 绑定未更新 UI