Verwaltung gesperrter Ressourcen (Bilddateien)

Die Anwendung ist ein Desktop-Dokumentenverwaltungssystem. Bilddateien (gescannter Dokumente) werden in einem freigegebenen Netzwerkordner und die zugehörigen Indizes in einer Datenbank gespeichert. Wenn nun das Bild einer ausgewählten Dokumentseite angezeigt wird, hat der Benutzer die Möglichkeit, es zu löschen (über ein Kontextmenü). Das Problem ist, wenn ich das versuche, löst es eine Ausnahme aus (die Ressource ist gesperrt), die allen Sinn hat, vorausgesetzt, dass sie auf dem Bildschirm angezeigt wird. Daher habe ich derzeit eine permanente Löschwarteschlange. Sobald die App gestartet ist, gehe ich in die Warteschlange und lösche die Seiten der Dokumente, deren Indizes aus der Datenbank gelöscht wurden, und da sie nicht angezeigt werden, ist der Löschvorgang erfolgreich, aber dies scheint ein ziemlich schlechter Code zu sein (ich meine, es funktioniert, aber nicht) so sauber wie es sollte, denke ich).

Wie schlecht ist meine schnelle Lösung. Vorausgesetzt, die App ist Einzelbenutzer, muss der Benutzer die App starten, um sie zu verwenden. Ist das eine sehr schlechte Idee oder kann ich sie über einen anderen Pfad umsetzen?

Die Bilder werden (im Document Viewer) angezeigt, indem sie an die aktuelle Datei gebunden werden:

Aussicht:

<Image Name="PageViewedPath" Margin="20" Grid.Column="0" />

ViewModel:

public string PageViewedPath { get; set; }

Und sobald der Benutzer auf "Weiter" oder "Zurück" klickt, ändere ich (im ViewModel den PageViewedPath). Möglicherweise ist das Problem diese Bindung, die ich nicht im Detail kontrollieren kann. Ich verwende Caliburn Micro. Deshalb wird die Bindung nur durch Festlegen des Abbildnamens durchgeführt.

Ich denke, dass das Überschreiben dieser Bindung und das Erstellen einer Hardcopy des Bildes, bevor es angezeigt wird, möglicherweise funktionieren muss, aber ich bin nicht sicher, ob und noch schlimmer, wie es geht.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage