1
如何更新(替换)绑定到导航堆栈中的图像控件的本地存储器中的映像?WinRT访问冲突复制本地存储器中的文件
更具体地:我表示页A(ViewProfile.xaml)与绑定到视图模型的属性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)手机应用程序中解决此问题的正确方法是什么?
谢谢你的回答。这两个页面中的控件都绑定到相应的(Prism)ViewModel的各个属性。属性更改事件由设置者触发。我现在在第一页视图模型的OnNavigatedFrom()方法中设置了'ImageSource = null',并在'OnNavigatedTo()'中返回到图像文件。仍然获得未经授权的访问例外。我是否正确应用了您的建议? – jerry 2015-03-19 16:19:47