Comment donner le focus à et sélectionner du texte dans une zone de texte de ViewModel

StackOverflow https://stackoverflow.com/questions/930828

  •  06-09-2019
  •  | 
  •  

Question

J'expérimente avec MVVM dans le cadre d'une application simple WPF. J'ai une commande attachée à un bouton. Si le texte dans une zone de texte est « incorrect », je veux la zone de texte pour se concentrer et tout ce qu'il est contenu sélectionné. Il semble que la seule façon de le faire est soit par une sorte d'appel direct du commandement dans mon ViewModel à la vue, ou la configuration une sorte d'événement que les feux de ViewModel et la vue écoute pour. De là, la vue peut faire des appels directs sur la zone de texte en question.

Je suis en train de rester dans la nature découplée de MVVM, mais il semble que il n'y a aucun moyen que je peux obtenir ce comportement déclarative en XAML, ou dans le code directement dans le ViewModel sans parler au moins indirectement à la vue (soit un Interface ou CCE). Je dois aussi tenir une référence à la vue dans le ViewModel.

Quelle serait considérée comme une « meilleure pratique » ici, et comment découplés sont des vues vraiment censé être de ViewModels dans les applications MVVM « réelles »?

Était-ce utile?

La solution

Il est le code qui est directement lié aux commandes de votre interface utilisateur, donc je pense que dans ce cas, le code-behind de la vue est là où il appartient. Vous pouvez configurer un événement ou quelque chose comme ça. De cette façon, il est toujours aussi découplé avant -. La vue sait de toute façon viewmodel, vous avez encore quelques lignes de code dans le code-behind

Autres conseils

j'ai rencontré même problème, ce que je l'ai fait est une zone de texte personnalisé et d'exposer la propriété de dépendance de ce contrôle.

Comme mise au point, selectalltext et lier ces propriétés pour voir le modèle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top