【发布时间】:2015-03-18 23:59:59
【问题描述】:
什么是更新(替换)本地存储中的图像的好方法,该图像绑定到导航堆栈中的图像控件。
更具体地说:我在页面 A (ViewProfile.xaml) 中显示图像,图像源绑定到 ViewModel 集中的属性 ImageSource,使用
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() 因未授权访问违规而失败。我的理解是,将图像绑定在第一页上会有效地锁定文件,因此无法更改。由于页面 A 实际上并没有对图像进行任何处理,只是显示它并且可能在更新后重新加载它,因此无需锁定文件。
在 Windows 8.1 (WinRT) 手机应用程序中解决此问题的正确方法是什么?
【问题讨论】:
标签: c# mvvm windows-runtime windows-phone-8.1 winrt-xaml