在主页面中我有一个按钮创建帖子。当我点击它时,我会收到编辑。输入一些文字后,我点击按钮savePost。然后发送保存到服务器并返回到我的主页面,但我的墙上没有新帖子。我需要刷新该页面以查看我的新帖子。在单击按钮savePost后,如何编写代码以在主页上使用我的新帖子接收上一页?
Button savePost = new Button {Text = "Save post"};
stackLayout.Children.Add(savePost);
savePost.Clicked += (sender, args) =>
{
var restService = new RestServiceImpl(UserService.User.AccessToken);
PostView post = new PostView
{
Text = textEditor.Text,
};
restService.CreatePost(post);
Navigation.PopAsync();
};
答案 0 :(得分:4)
有几种方法可以解决这个问题。最简单的一个是在页面的OnAppearing
事件上实现一些机制,只是在那里重新加载,或者想一些检测重新加载的方法,而不仅仅是重新加载。这可以通过例如在'restService.CreatePost(post);之后设置为true的bool
来完成。线。
那种让我走向另一个方向。当您使用某种MVVM框架时(例如,查看FreshMvvm),您可以在弹出PageModel时执行一些代码。因此,您可以更精细地控制何时重新加载并检测是否有必要。
另一种方法是使用MessagingCenter。您可以随时(以及从哪里)重新加载发送消息,并让需要重新加载的页面订阅,并在收到正确的消息时执行重新加载代码。
这完全取决于您的要求和代码结构。