Quelle est la bonne pratique pour définir le focus du contrôle dans l’architecture MVVM?
La façon dont je l’imagine est d’utiliser une propriété sur le ViewModel qui déclencherait un changement de focus en cas de besoin. Et que les contrôles de l'interface utilisateur lient/écoutent cette propriété afin que, si elle change, le focus approprié soit défini.
Je le vois comme une chose ViewModel, parce que je veux définir le focus approprié après une certaine action effectuée par ViewModel, telle que le chargement de certaines données.
Quelle est la meilleure pratique?
Utilisez la propriété attachée IsFocused comme suggéré dans la réponse ici: Définissez le focus sur la zone de texte dans WPF depuis le modèle d'affichage (C #)
Ensuite, vous pouvez simplement vous lier à une propriété dans votre viewmodel.
ViewModel envoie un événement à la vue en lui indiquant que l'action est terminée et la vue définit le focus.
Vous pouvez introduire une interface pour la vue afin que ViewModel puisse indiquer à la vue de définir le focus. L'exemple d'application BookLibrary du WPF Application Framework (WAF) montre comment procéder. S'il vous plaît jeter un oeil à la BookListViewModel.
La question a été posée à plusieurs reprises. Malheureusement, les réponses ne concernent que WPF. Donc, pour une lumière argentée utilisant MVVM, vous pouvez également associer n'importe quelle propriété pour plus de détails, veuillez visiter le lien suivant
http://codenicely.blogspot.com/2012/01/how-to-set-textbox-focus-in-silverlight.html