Comment faire pour obtenir l'index de l'actuel ItemsControl article?
Est-il un moyen pour obtenir l'index de l'actuel ItemsControl
élément dans WPF
?
Par exemple, je veux faire quelque chose comme:
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding current_index}">
</TextBox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
de sorte qu'après cela, la première TextBox
va afficher le texte "0"
, deuxième "1"
, troisième "2" ...
.
double possible de WPF ItemsControl l'actuel ListItem Index dans le ItemsSource
OriginalL'auteur herohuyongtao | 2014-03-13
Vous devez vous connecter pour publier un commentaire.
Je suggère de regarder à:
WPF ItemsControl l'actuel ListItem Index dans le ItemsSource
Il explique comment contourner le fait qu'il n'est pas intégré dans la propriété d'Index sur le ItemsControl.
EDIT:
J'ai essayé le code suivant:
Et obtenez une fenêtre avec trois TextBlocks comme:
Pouvez-vous fournir d'autres arguments, pourquoi AlternationCount utilisé de cette façon devrait être peu fiables?
J'ai trouvé que le AlternationIndex valeur a souvent été passé à travers mon code-behind à zéro pour tous les éléments, tandis que les mises en page sont calculés, de sorte qu'il n'a pas bien fonctionné pour moi comme je le voulais plus que temps d'affichage de liaisons. À l'aide de ReferenceEquals contre des articles dans ItemsSource de déterminer leur indice a été une alternative fiable.
OriginalL'auteur FishySwede
Vérifier cela
Convertisseur ressemble à ceci
La suite
Ne pas mettre à jour des index lors de l'élément a été supprimé.
OriginalL'auteur Maximus
Ici comment je me ItemIndex
Et le convertisseur:
Par cette façon, vous pouvez lier chaque type de collection à la ItemSource et il sera le changement de ListCollectionView. De sorte que le convertisseur de travail pour les différents type de collection.
Je pense que cette approche ne fonctionnera pas correctement: IndexOf utilise d'égal à Égal et si la source de la collection a des doublons (par exemple, les deux mêmes valeurs de chaîne) IndexOf retournera toujours le premier élément.
Je pense à une solution qui utilise ItemContainerGenerator est mieux. Merci.
OriginalL'auteur Saykor
Je l'ai fait via le convertisseur de calculer l'indice de l'élément ajouté.
Il fonctionne d'une seule façon. Si vous supprimez des éléments d'une certaine manière ou d'une collection de changer il est recommandé d'utiliser thomething d'autre.
Et il est recommandé de créer convertisseur séparé pour chaque collection d'éléments dont vous avez besoin pour être indexé.
- Je l'utiliser dans le code xaml de cette façon
Dessine pour moi une des lignes pour chaque élément de la collection avec BaseValue décalage de l'abscisse.
OriginalL'auteur Kamerton