Comment obtenir l'instance d'un élément basé sur un modèle à partir d'un ItemsControl lié aux données? (WPF)

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

Question

J'ai un <ItemsControl> avec un personnalisé <DataTemplate> (et aussi un personnalisé <ItemsPanelTemplate> qui n'est qu'un WrapPanel), lié via ItemsSource à une simple collection observable de chaînes.

Le DataTemplate consiste simplement en une instance d'une personnalisation UserControl dont les propriétés sont liées à la chaîne via {Binding}.

Le problème vient du fait que mes éléments de données ne sont que des chaînes. Je dois accéder directement aux instances de mon ContentPresenter programme, mais je n'arrive pas à comprendre comment!

j'ai essayé:

var item = tagBar.Items[ tagBar.Items.Count - 1 ];

... mais cela ne fait que renvoyer la chaîne. Aussi:

var item2 = tagBar.ItemContainerGenerator.ContainerFromIndex( tagBar.Items.Count - 1 );

... renvoie un <=>, et je ne vois pas quoi faire du <=> pour accéder à l'instance de mon <=>.

??

Ceci est similaire à cette question , mais il n’a jamais été répondu correctement et s’appliquait également à Silverlight alors que c’est WPF.

Était-ce utile?

La solution

La réponse que j'ai postée, ici , concerne la mise au point d'un élément. dans un DataTemplate, mais il devrait fournir le code dont vous avez besoin. Cela implique l'utilisation de la méthode FindName sur votre DataTemplate pour rechercher un contrôle dans celui-ci. Si vous donnez un nom à votre contrôle utilisateur, vous devriez avoir raison.

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