gpt4 book ai didi

c# - WinRT 访问冲突在本地存储中复制文件

转载 作者:行者123 更新时间:2023-12-03 10:45:05 27 4
gpt4 key购买 nike

什么是更新(替换)本地存储中的图像的好方法,该图像绑定(bind)到导航堆栈中的图像控件。

更具体地说:我在页面 A (ViewProfile.xaml) 中显示图像,图像源绑定(bind)到属性 ImageSource在 ViewModel 集中使用

ImageSource= "ms-appdata:///local/image.jpg";

在第二页 B (EditProfile.xaml) 中,我想再次显示图像并为用户提供更改它的选项,例如通过使用替换文件
StorageFolder destinationFolder = ApplicationData.Current.LocalFolder;
await profileImage.CopyAsync(destinationFolder, "image.jpg", NameCollisionOption.ReplaceExisting);

更改后的图像将显示在页面 B 上,然后在用户返回到后堆栈中时显示在页面 A 上。
CopyAsync()因未经授权的访问违规而失败。我的理解是,将图像绑定(bind)在第一页上会有效地锁定文件,因此无法更改。由于页面 A 实际上并没有对图像进行任何操作,只是显示它并且可能在更新后重新加载它,因此无需锁定文件。

在 Windows 8.1 (WinRT) 手机应用程序中解决此问题的正确方法是什么?

最佳答案

您可以将上一页的 observablecollection 设置为 null 以在对您正在修改的实际图像文件进行更改之前触发属性更改事件。
然后您可以将 observablecollection 重置回正确的数据源以相应地重置数据上下文。

试试看是否有帮助。

关于c# - WinRT 访问冲突在本地存储中复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29134904/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com