Verantwortung eines ViewModel

Ich baue ein Tool, dessen Ziel es ist, eine Datei basierend auf einigen Parametern herunterzuladen.

Der erste Schritt besteht darin, diese Parameter festzulegen (oder abzurufen).

Die verschiedenen Parametersätze werden von einem FileDownloadsManager abgerufen (z. B. über Konfigurationsdateien): Er weiß genau, welche Parameter zum Herunterladen der richtigen Datei verwendet werden müssen.

Diese Parameter werden in einer Klasse gespeichert, und ich habe eine Liste von Instanzen dieser Klasse.

Das bedeutet, dass ich meine Datei mit mehreren möglichen Parametersätzen herunterladen kann.

Um diese Parametersätze herum habe ich ParametersSetsViewModels erstellt, damit ich sie in einer Liste anzeigen und einige Nur-Ansicht-Eigenschaften hinzufügen kann. Intern haben die ParametersSetsViewModels einen Verweis auf die zugrunde liegenden ParametersSets, die als Quelle für die Mitglieder des View-Modells verwendet werden.

Nun, wenn ich meinen Parametersatz auswähle, möchte ich, dass die zugehörige Datei heruntergeladen wird.

Wessen Verantwortung sollte das sein?

Ich habe das Gefühl, dass wenn das ViewModel zu aktiv ist und eine Methode vorhanden ist, die die heruntergeladene Datei zurückgibt, dies gegen das MVVM-Muster verstößt. Wie sehen Sie das?

Bonus: Der Download sollte im Hintergrund mit BackgroundWorkers oder den asynchronen Methoden von WebClient möglich sein.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage