I asked the same thing a while ago here
There isn’t a built in Index property, but you can set the AlternationCount
of your ItemsControl to something higher than your item count, and bind to the AlternationIndex
<TextBlock Text="{Binding
Path=(ItemsControl.AlternationIndex),
RelativeSource={RelativeSource Mode=TemplatedParent},
FallbackValue=FAIL,
StringFormat={}Index is {0}}" />
It should be noted that this solution may not work if your ListBox uses Virtualization as bradgonesurfing pointed out here.