Je travaille dans WPF en utilisant le pattern MVVM, et en général, les choses semblent bien fonctionner, car j'embrasse mon cerveau autour des nuances de WPF et de MVVM. Cependant, je suis actuellement bloqué sur un problème particulier. Mon application réelle est assez complexe, donc pour simplifier, prenons le near-defining article de Josh Smith sur le modèle et utilisons l'application qu'il contient.WPF: Evénement LostFocus sur un control/view/viewmodel particulier
Considérons la figure 2, et imaginons que l'utilisateur a tapé quelques trucs dans les champs prénom et nom de famille. Ensuite, l'utilisateur clique complètement hors de l'espace de travail (viewmodel), soit en cliquant sur un autre onglet client, soit éventuellement sur un modèle de vue complètement différent dans la même application. Dans ce cas, j'aimerais que l'application me demande «Hey, voulez-vous enregistrer vos modifications? Oui/Non/Annuler» et répondre de manière appropriée. Cela a présenté ... des défis. Parce que je voudrais que l'utilisateur puisse «annuler» ce premier passage suggère d'avoir besoin de PreviewLostKeyboardFocus (puisque je pourrais définir Handled = true et annuler le changement de focus). Cependant, plusieurs actions de l'utilisateur (par exemple cliquer sur l'onglet d'un espace de travail différent) ne modifient pas le focus du clavier. LostFocus me couvre mieux à cet égard, mais c'est seulement après que l'accent a déjà été perdu (bien que je puisse bien sûr le remettre en marche?) Et il y a des problèmes pour déterminer si l'événement venait de la vue elle-même l'ensemble de la vue) ou si elle est simplement bouillie à partir d'un objet contenu.
Et une grande image sur tout cela - cela semble être un problème pour la vue, mais cela implique l'écriture de code dans la vue plutôt que le mode de vue magique. Ce qui me fait penser que je ne regarde pas cela correctement. Donc, j'espère que je manque un grand a-ha conceptuel qui rendra tout cela clair. Aidez-moi?
Le lien du blog est cassé – Eldho