J'ai une NavigationWindow qui implémente une fonctionnalité d'assistant, et un ensemble d'objets Page qui représentent les étapes.multithread view models
Chaque page utilise un modèle de vue distinct.
Certains de ces modèles de vue génèrent des threads de travail à partir de leurs constructeurs. Je termine ces threads lorsque les modèles de vue sont éliminés (ils implémentent IDisposable). En outre, j'affecte ces modèles de vue au DataContext des Pages dans les constructeurs de Pages, et je rejette le DataContext sur l'événement Unloaded. Je fais cela parce que j'ai besoin d'arrêter les threads de travail. Tout cela fonctionne très bien tant que je ne veux pas retourner dans l'assistant. mais si je le fais, la page, puisqu'elle a déjà été déchargée, n'a plus de DataContext et ne montre plus rien. Donc, pour corriger cela, je n'ai pas besoin de disposer du DataContext sur Unloaded, et de donner au modèle de vue l'ordre de démarrer/arrêter son (s) thread (s) quand sa propre fenêtre est chargée/déchargée. Je suppose que j'ai besoin d'introduire quelques méthodes (par exemple, Start() et Stop()) sur le modèle de vue qui ferait cela. et appelez ces méthodes à partir des gestionnaires Initialized et Unloaded des pages.
mais c'est moche. c'est trop compliqué, les pages ont besoin de savoir pour démarrer/arrêter les threads, sinon ça ne marchera pas. donc je suis à la recherche de la bonne façon MVVM pour accomplir cela.
s'il vous plaît aider konstantin