推荐的触发PageModel刷新的方法

时间:2017-03-18 22:56:19

标签: xamarin.forms freshmvvm

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

我可以通过SettingsPageModel使用于WebView内容的缓存失效,随后触发刷新,但是SettingsPageModel需要知道缓存。

建议的方法是什么?

1 个答案:

答案 0 :(得分:0)

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

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

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

字符串值“update profile”是MessagingCenter正在侦听的密钥。然后,当您将以下代码放入“设置”页面时,它将执行MessagingCenter的{​​{1}}中的代码:

mainPage

注意:为了使其正常工作,我必须将主页的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)); 的文件可以在这里找到: https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/messaging-center/