mos*_*iau 1 c# settings save listobject win-universal-app
如何将列表保存到 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; }
}
Run Code Online (Sandbox Code Playgroud)
定义方法 对于 loadfile 方法:
//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;
}
Run Code Online (Sandbox Code Playgroud)
结束行错误:(
如何在设置中保存列表?请帮帮我。
我知道自提出原始问题以来已经半年多了,但我希望我能早点发现 UWP 工具包,因为我有类似的情况,我想快速轻松地将设备信息的简单类列表存储到在漫游设置中漫游。将其发布在这里以防万一它可能会被其他人在类似情况下使用,例如 OP 和我自己。
如果你的应用程序面向 Windows 10 Build 10586 或更高版本,你可以使用Microsoft UWP 社区工具包中的对象存储帮助程序来存储小型或大型对象,其中还包括列表。
可以通过将Microsoft.Toolkit.Uwp NuGet 包添加到 UWP 项目来添加工具包。
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);
Run Code Online (Sandbox Code Playgroud)
同样可以使用RoamingObjectStorageHelper来完成。
您可以使用Save(key, object)和SaveFileAsync(key, object)保存简单和复杂的对象,如列表。
Save会将对象存储在本地/漫游设置中(取决于您选择的存储助手);这意味着它受数据约束并且序列化对象的总大小必须小于 8 KB。
SaveFileAsync将对象作为序列化文件存储在您的应用程序的LocalState或RoamingState目录中(至少我相信是这样),以便稍后使用 ReadFileAsync 进行访问。如果您的对象非常复杂并且您希望序列化为大于 8 KB 的大小,请使用此选项。
使用SaveFileAsync存储大型/复杂对象或对象列表时要小心。每个 UWP 应用仅分配 100 KB(也称为RoamingStorageQuota)。如果超过配额,数据复制将停止。
| 归档时间: |
|
| 查看次数: |
3987 次 |
| 最近记录: |