如何将列表保存到 C# uwp 中的设置?
为对象定义类
//class
public class ListOfFile
{
public string File_DisplayName { get; set; }
public string File_Name { get; set; }
public string File_path { get; set; }
public string File_Extension { get; set; }
public StorageFile File_Storage { get; set; }
public ImageSource File_Thumbnail { get; set; }
}
为加载文件定义方法 方法:
//method
void loadfile()
{
List<ListOfFile> FileBind=new List<ListOfFile>();
var FilesInFolder = await FolderItem.GetFilesAsync();
foreach(var FileItem in FilesInFolder)
{
FileBind.Add(new ListOfFile()
{
File_DisplayName = FileItem.DisplayName,
File_Extension = FileItem.FileType
,
File_Name = FileItem.Name
,
File_path = FileItem.Path
,
File_Thumbnail = bitmapimage
,
File_Storage =FileItem
});
}
ApplicationData.Current.LocalSettings.Values["allfiles"]=FileBind;
}
结束行错误:(
如何在“设置”中保存列表? 请帮帮我。
最佳答案
UWP 社区工具包 - 对象存储
我知道自从最初的问题被问到已经半年多了,但我希望我能早点发现 UWP 工具包,因为我遇到过类似的情况,我想快速轻松地存储一个简单的类列表在漫游设置中漫游的设备信息。将其张贴在这里以防其他人在类似情况下使用它,例如 OP 和我自己。
如果您的应用程序以 Windows 10 Build 10586 或更高版本为目标,您可以使用属于 UWP Community Toolkit 的对象存储助手由 Microsoft 存储小型或大型对象,其中还包括列表。
您可以通过将 Microsoft.Toolkit.Uwp NuGet 包添加到您的 UWP 项目来添加该工具包。
LocalObjectStorageHelper 示例 ( Snippet Source )
var helper = new LocalObjectStorageHelper();
// Read simple objects
string keySimpleObject = "simple";
if (helper.KeyExists(keySimpleObject))
{
string result = helper.Read<string>(keySimpleObject);
}
// Save simple objects
helper.Save(keySimpleObject, 47);
// Read complex/large objects
string keyLargeObject = "large";
if (await helper.FileExistsAsync(keyLargeObject))
{
var result = await helper.ReadFileAsync<MyLargeObject>(keyLargeObject);
}
// Save complex/large objects
var o = new MyLargeObject
{
...
};
await helper.SaveFileAsync(keySimpleObject, o);
同样可以使用 RoamingObjectStorageHelper 完成。
重要提示
您可以使用 Save(key, object) 和 SaveFileAsync(key, object) 保存简单和复杂的对象,例如列表。
Save 会将对象存储在本地/漫游设置中(取决于您选择的存储助手);这意味着它受数据限制,序列化对象的总大小必须小于 8 KB。
SaveFileAsync 会将对象作为序列化文件存储在您应用的 LocalState 或 RoamingState 目录中(至少,我相信如此)稍后使用 ReadFileAsync 访问。如果您的对象非常复杂并且您希望序列化为大于 8 KB 的大小,请使用此选项。
重要警告
使用 SaveFileAsync 存储大型/复杂对象或对象列表时要小心。每个 UWP 应用仅分配 100 KB(也称为 RoamingStorageQuota)。如果超过配额,数据复制将停止。
关于c# - 如何将 List<object> 保存到 C# uwp 中的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36528638/