WPF zone de liste à l'aide de ItemsSource et ItemTemplate

Je suis confus quant à la façon dont les liaisons sont résolus lorsque j'ai à la fois un ItemsSource et un ItemTemplate dans un WPF ListBox.

J'ai un ObservableCollection<int> appelé ListOfIndexes. Pour chaque indice, je veux regarder son enregistrement dans une table de base de données. J'espère le faire dans le IndexToObjectDescriptionConverter.

<ListBox ItemsSource="{Binding ListOfIndexes}" 
         ItemTemplate="{Binding Converter={StaticResource IndexToObjectDescriptionConverter}}" />

Mais un point d'arrêt dans le convertisseur est de me dire que la valeur lue par l' ItemTemplate de liaison est de la fenêtre elle-même — c'est à dire, la DataContext de la ItemsSource et ItemsTemplate est le même.

Pardon un peu de sincérité, mais cela semble STUPIDE. Tout le point de la ItemTemplate est pour le rendu de chaque élément à l'intérieur de la ItemsSource, donc je suppose que j'ai compris que l' DataContext de la ItemTemplate serait l'élément en cours de rendu.

Donc, cela dit, comment dois-je dire à la ItemTemplate qu'il devrait s'inquiéter de l'individu éléments représentés par les ItemsSource et de ne pas utiliser la totalité de la fenêtre de DataContext?

OriginalL'auteur James Cronen | 2014-06-25