DataTemplate の一部として GridView で使用される画像 (PNG) ファイルがあります。GridView で特定のオブジェクト行を削除しようとすると、その行に関連する画像ファイルも削除されます。リストの項目ごとに画像が異なります。
このコードを使用して画像ファイルを削除しています
StorageFile _file = await DataStore.GetFileAsync(filename);
await _file.DeleteAsync(StorageDeleteOption.Default);
画像ファイルは、GridView の DataTemplate の下の GridView にレンダリングされます。したがって、リスト内の各オブジェクト モデルには、DataTemplate の ImageSource を返すパブリック プロパティがあります。
リストからオブジェクト行を削除した直後と、新しいリスト項目の GridView が更新された後に、削除手順を呼び出しています。
リストにオブジェクトが含まれていない (画像を消費している) 場合でも、ファイルを削除しようとすると、アプリは Access is Denied 例外をスローします。アプリの実行中に、その特定のファイルを手動で (ファイル エクスプローラーを使用して) 削除しようとしても、削除できません。
画像を削除する前に、GridView の ItemSource を null に、List を null に設定しても、アプリ内の未使用のオブジェクトをすべてクリアしようとしました。それでも例外は持続します。
前もって感謝します。