我正在开发Windows Phone 8应用程序,并希望每次用户离开页面时都从页面保存数据。如果用户按下后退键或在应用程序中导航,这可以正常工作,但是如果按下开始键,则不保存任何内容。我的代码如下所示:
protected async override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
base.OnNavigatingFrom(e);
if (!toDelete)
{
List<NoteItem> ni = this.getNoteItems();
await SaveNotes(ni, this.Title.Text);
}
}
这会调用方法来保存笔记。我没有在页面上看到任何其他事件来保存它。有人知道我在哪里弄错了吗?
谢谢,
答案 0 :(得分:1)
您可以尝试在App.xaml.cs中处理此案例。
按下“开始”按钮后,将引发Application_Deactivated事件。
例如
private void Application_Deactivated(object sender, DeactivatedEventArgs e)
{
//do the saving here
}
虽然,我在按下“开始”按钮时也会调用OnNavigatingFrom事件,因此在事件处理程序中使用await可能很有魅力。阅读this article by Andy Wigley,其中包含有用的信息。