Windows Phone 8.1: 在应用程序中保存列表 settings/storage

Windows Phone 8.1: Save list in app settings/storage

我刚开始开发 Windows Phone 8.1 应用程序。

该应用程序允许用户将 'data'(字符串)添加到他的 favorites-list。 现在的问题是:

保存列表或列表的单个条目的最佳方式是什么,以便我可以在下次启动应用程序时再次加载这些收藏夹?

我想我应该将数据保存到一个(文本)文件中,这样我就可以逐行读取它并再次将列表放在一起。

您怎么看,这是处理此类事情的最佳方式吗?我是 Windows Phone 8.1 平台的新手,非常感谢任何帮助 - 谢谢!

最佳方法取决于数据大小和您的需要。至于将其保存在“设置”中,您可以尝试在保存时制作一个字符串数组,并在加载数据时制作列表。简单示例如下所示:

List<string> favourites = new List<string>();
protected void Method()
{
    // save as array
    ApplicationData.Current.LocalSettings.Values["myList"] = favourites.ToArray();

    // retrive your array and make a list from it
    favourites = ((string[])ApplicationData.Current.LocalSettings.Values["myList"]).ToList();
}

请记住 LocalSettings 仅支持简单类型并且有其他限制 - 了解更多信息 take a look at MSDN

我想我终于让它工作了。应该早点考虑类似的事情。

所以我得到了我的 async Task SaveAppSettingsAsync() 并在应用程序关闭时在挂起事件和我的 Hardwarebuttons_Pressed-Event 中调用它:

private async void OnSuspending(object sender, SuspendingEventArgs e)
    {
        var deferral = e.SuspendingOperation.GetDeferral();


        await SaveAppSettingsAsync();


        deferral.Complete();
    }

private async void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
    {
        Frame rootFrame = Window.Current.Content as Frame;
        if (rootFrame != null)
        {
            e.Handled = true;
            if (rootFrame.CurrentSourcePageType == typeof(MainPage))
            {
                await SaveAppSettingsAsync();

                this.Exit();
            }
            else if (rootFrame.CanGoBack)
                rootFrame.GoBack();
        }
    }

感谢您的帮助。我想我现在更了解如何处理异步任务了。正如我所说 - 我是 Windows Phone 的新手,之前从未真正使用过它们。