如何在Windows运行时页面进入前台时刷新它?

时间:2014-07-11 14:39:17

标签: c# xaml windows-runtime winrt-xaml windows-phone-8.1

我希望每次进入前台时都进行Windows Runtime Page刷新/重新加载。我曾尝试向Loaded事件添加处理程序,但Loaded事件仅在首次加载页面时触发,这与HTML的DOMContentLoaded事件不同。这样做的正确方法是什么?

感谢。

public sealed partial class MainPage : Page {
    public MainPage() {
        this.InitializeComponent();

        this.NavigationCacheMode = NavigationCacheMode.Disabled;

        this.Loaded += (s, e) => {
            Debug.WriteLine("Loaded at " + DateTime.Now.ToString());
            // Code that should be executed when the page goes to the foreground each time
        };
    }
}

1 个答案:

答案 0 :(得分:1)

每次导航到页面时,都会调用OnNavigatedTo方法(如您在问题中提供的MSDN页面中所述)。

您可以使用NavigationEventArgs来确定发生了哪种导航并适当地处理此问题。在您的情况下,您将添加代码来刷新页面的内容。

正如Romasz所指出的那样,当你的应用恢复时,这对你的WinRT XAML堆栈没有帮助,因为在这种情况下页面没有接到OnNavigatedTo的电话。

为此,您必须在应用中检测应用简历并向您的信息页(或其数据源/视图模型)发送消息以进行刷新。

请注意应用恢复/暂停指南(see MSDN)。