我有一个带有 GridView的 Page Ingredients.xaml 。此 GridView 显示Ingredient
对象列表。对于每个项目,通过绑定到Ingredient
包含文件路径(在应用程序的本地文件夹中)的对象的字符串属性来显示图像。
当我单击一个项目时,应用程序导航到Ingredient.xaml,一个详细信息页面,其中显示图像以及所有详细信息。具有设置新图像或替换/删除当前图像的功能。
当还没有图像时,一切都像魅力一样。但是,一旦文件已经存在,我在尝试删除或替换当前文件时会收到以下错误:“访问被拒绝。(来自 HRESULT 的异常:0x80070005(E_ACCESSDENIED))”。
起初我认为Ingredient.xaml中的图像是问题所在,因为它仍然显示我试图删除的图像。所以我在代码中添加了以下行:
this.ingredientImage.Source = null;
不过,代码仍然抛出异常。所以我尝试了其他方法:我从Ingredients.xaml的 GridView 中删除了图像。唯一不显示图像的地方是Ingredient.xaml。当我尝试替换/删除图像时,Image.Source
设置为 null 并且文件已成功替换/删除。
显然,上一页 GridView 中的图像仍然阻止文件,但我不知道当我离开时如何释放文件。