【问题标题】:Return to previous page with refresh data Xamarin Forms [duplicate]返回上一页并刷新数据 Xamarin Forms [重复]
【发布时间】:2016-09-15 20:01:51
【问题描述】:

在主页我有一个按钮创建帖子。当我点击它时,我会收到编辑器。输入一些文本后,我单击按钮 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();
        };

【问题讨论】:

    标签: xamarin.forms


    【解决方案1】:

    有几种方法可以解决这个问题。最简单的一种是在页面的OnAppearing 事件上实现某种机制,然后在那里重新加载,或者想办法检测必须执行的重新加载,而不是仅仅重新加载。这可以通过一些 bool 在“restService.CreatePost(post);”之后设置为 true 来完成行。

    这让我想到了另一种方式。当您使用某种 MVVM 框架时(例如查看 FreshMvvm),您可以在弹出 PageModel 时执行一些代码。因此,您可以更精细地控制何时重新加载并检测是否有必要。

    另一种方法是使用MessagingCenter。您可以在需要重新加载的任何时候(以及从何处)发送消息,并让需要重新加载的页面订阅该消息,并在收到正确消息时执行重新加载代码。

    这完全取决于您的要求和代码结构。

    【讨论】:

    • 感谢您的帮助和非常快速的答复:)
    • 如果它(最终)对您有所帮助,请不要忘记将其标记为答案!
    • 通过messagecenter我实现了实时更新,谢谢....
    猜你喜欢
    • 2016-10-08
    • 2022-01-16
    • 2018-07-21
    • 1970-01-01
    • 2018-09-24
    • 2016-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多