2017-10-09 3 views
0

J'ai un ListView dont la source est liée à un ObservableCollection<MyModel>. Lorsque je sélectionne un élément, en utilisant le mode mono-élément, je souhaite accéder au contenu de xaml de l'élément sélectionné. Je voudrais accéder au TextBox de l'élément sélectionné et le modifier dans mon code. Je suis sûr que je pourrais utiliser des états visuels pour le faire.Afficher le contenu de ListViewItem sélectionné de ListView lié à un modèle

Mais mon problème est, l'élément sélectionné renvoyé est une instance de MyModel et je ne vois pas de moyen évident d'obtenir le contenu de l'élément sélectionné. Même si je traverse la propriété Items du ListView je reçois un tableau de MyModel sans moyen évident d'accéder au TextBox pour l'article sélectionné retourné.

Toutes les idées et suggestions sont appréciées.

+1

Qu'en est 'ContainerFromItem' https: // stackoverflow .com/questions/33553035/comment-accéder-la-propriete-de-la-propriete-de-la-liste-des-articles –

+0

@ S.Akbari merci pour le lien – visc

Répondre

1

Il y a une méthode qui associe le modèle/valeur au conteneur de l'interface utilisateur réelle:

ListView listView; 
MyModel model; 

var uiElement = listView.ContainerFromItem(model); 

Vous pouvez également l'obtenir par index:

var uiElement = listView.ContainerFromIndex(5); 
+0

Merci Laith, ça a été utile. Et beaucoup plus facile que de créer un 'UserControl' et d'invoquer une certaine logique à partir de la sélection a changé de callback. – visc