Question

Je contrôle ListView dans ma demande qui est binded à la collection de CustomObject Liste << strong> CustomObject >. CustomObject a vue séparée. Ce modèle ListView a séparé la vue.

La liste de collection _customobject est containted dans la classe ListView ViewModel.

Ma Recherche:

Je veux invoquer une vue qui montrent des propriétés de l'objet personnalisé, lorsque l'utilisateur double-cliquez sur une ligne de ListView. La commande double clic ListView est binded à ListViewDoublClick Commande dans le modèle de vue. Le CustomObject est dans l'argument cas de listview commande de double clic. Pour acheive cela, je dois passer l'objet personnalisé (ou une propriété identifiant unique objet personnalisé à travers lequel je peux récupérer l'objet personnalisé de la collection) en tant que paramètre de commande.

S'il vous plaît me suggérer la solution !!

Était-ce utile?

La solution

La meilleure façon de le faire est d'ajouter un double gestionnaire d'événements, cliquez sur la liste. Rappelez-vous: MVVM ne veut pas dire pas de code dans la vue! Cela signifie que la vue ne gère que les préoccupations vue. Vous pouvez faire un argument vraiment bien que les EventArgs ne sont significatives que le point de vue et si vous voulez passer à la ViewModel vous ne devez transmettre les informations pertinentes. Si vous devez faire quelque chose comme l'extraction des données d'un EventArgs pour passer à la ViewModel, ce qui est acceptable et bon ... et mieux que passer les EventArgs vers le bas dans le ViewModel, à mon humble avis.

(je suis sûr que je vais un désaccord sur ce point, mais l'interaction de traiter l'interface utilisateur est une vue préoccupation et si l'alternative est en train d'écrire un comportement ou à l'aide d'un cadre pour obtenir un contrôle unique de travailler sur une seule page, rappelez-vous:. YAGNI et modèles ne sont pas la religion)

Plusieurs des cadres MVVM vous permettent de le faire (bien qu'il y ait beaucoup de discussions au sujet si elle est une bonne idée ou non). Enparticulier, MVVM Lumière Toolkit ajouté il y a peu de temps pour soutenir le glisser-déposer (si je me souviens le blog correctement).

Si vous n'êtes pas à l'aide d'un cadre MVVM, j'ai fini par écrire un comportement pour me permettre de faire cela si j'allais faire la même chose à plusieurs endroits. Dans ce cas, j'extrais habituellement les informations dont je me soucie de des EventArgs (à savoir que vous ne voulez probablement pas vraiment les args événement complet, mais vous vous souciez probablement quel élément a été cliqué et peut-être quelques autres bits de données).

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