加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

xaml – 删除以前在WinRT中的DataTemplate中使用的图像文件时拒

发布时间:2020-12-14 02:50:00 所属栏目:Windows 来源:网络整理
导读:我有我的GridView使用的图像(PNG)文件作为其DataTemplate的一部分.如果我尝试删除GridView中的特定对象行,我也会删除该行的相关图像文件.列表中的每个项目的图像都不同. 我正在使用此代码删除图像文件 StorageFile _file = await DataStore.GetFileAsync(fil
我有我的GridView使用的图像(PNG)文件作为其DataTemplate的一部分.如果我尝试删除GridView中的特定对象行,我也会删除该行的相关图像文件.列表中的每个项目的图像都不同.

我正在使用此代码删除图像文件

StorageFile _file = await DataStore.GetFileAsync(filename);
await _file.DeleteAsync(StorageDeleteOption.Default);

图像文件在GridView的DataTemplate下的GridView上呈现.
所以在我的List中的每个对象模型中,我都有一个公共属性,它为我的DataTemplate返回一个ImageSource.

我正在从List中删除对象行并在GridView刷新新的List项之后立即调用我的删除过程.

即使列表不再包含对象(使用图像),如果我尝试删除文件,应用程序也会抛出Access is Denied异常.当应用程序运行时,如果我尝试手动删除该特定文件(通过文件浏览器),它也不允许我.

我尝试清除我的应用程序中的所有未使用的对象,甚至在删除图像之前将GridView的ItemSource设置为null并将List设置为null.仍有例外情况仍然存在.

提前致谢.

解决方法

您可以尝试的一种方法是将图像加载到内存流中,然后从该流创建BitmapImage对象,然后可以将Image控件的源设置为该位图图像.

由于您没有使用实际的图像文件作为图像的来源,您可以随时轻松删除它:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读