触发页面模型刷新的建议方法



我有一个FreshMvvm Xam Forms项目,该项目有一个用于捕获用户名和密码的设置页面。如果用户名或密码更改,我想刷新主页中WebView的内容。

我可以使我用于设置页面模型中的 WebView 内容的缓存失效,这将随后触发刷新,但随后设置页面模型需要知道缓存。

对此推荐的方法是什么?

在页面之间发送数据的一种常用方法是使用 MessagingCenter 。 它允许一个页面订阅字符串值,并在另一个页面发送该字符串值时运行该方法。 以下是实现它的方法:

在您的主页中,您需要订阅MessagingCenter

MessagingCenter.Subscribe<mainPage>(this, "updated profile", (sender) =>
{
    //Code to execute in main page when MessagingCenter triggered
});

字符串值"更新配置文件"是消息传递中心正在侦听的键。 然后,当您将以下代码放在"设置"页面中时,它将在mainPageMessagingCenter中执行该代码:

MessagingCenter.Send((MainPage) mainPage, "updatedProfile");

注意:为了使它正常工作,我必须将主页的Page值发送到设置页面。 为此,在我的设置页面构造函数中,我添加了一个Page参数:

public class SettingsPage : ContentPage {
    private Page mainPage;
    public SettingsPage(Page mainPage) {
        this.mainPage = mainPage;
    }
}

然后当导航到SettingsPage时,我发送了我的主页:

await Navigation.PushAsync(new SettingsPage(this));

MessagingCenter文件可在此处找到:https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/messaging-center/

最新更新