WPF - Bind to index in ItemsControl from DataTemplate
===

I have a simple class which creates a list of objects:

    using System.Collections.ObjectModel;
    using System.Windows;

    namespace TestWPF2
    {
      /// <summary>
      /// Interaction logic for MainWindow.xaml
      /// </summary>
      public partial class MainWindow : Window
      {
        public ObservableCollection<TestObj> SomeList { get; set; }
        public string WindowTitle { get; set; }

        public MainWindow()
        {
          this.DataContext = this;
          WindowTitle = "People";
          SomeList = new ObservableCollection<TestObj>();
          SomeList.Add(new TestObj("Bob"));
          SomeList.Add(new TestObj("Jane"));
          SomeList.Add(new TestObj("Mike"));
          InitializeComponent();
        }
      }
    }

The TestObj class is as follows:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace TestWPF2
    {
      public class TestObj
      {
        public string FirstName { get; set; }

        public TestObj(string firstName)
        {
          this.FirstName = firstName;
        }
      }
    }

I then attempt to display each item in the list with the following:

    <Window x:Class="TestWPF2.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:local="clr-namespace:TestWPF2"    
            Title="MainWindow" Height="350" Width="525">

        <Window.Resources>
            <DataTemplate DataType="{x:Type local:TestObj}">
                <StackPanel Orientation="Vertical">
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="Pos: "/>
                        <TextBlock x:Name="posText"/>
                    </StackPanel>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="Name: "/>
                        <TextBlock Text="{Binding FirstName}"/>
                    </StackPanel>
                </StackPanel>

                <!-- THESE TRIGGERS DONT WORK -->

                <DataTemplate.Triggers>
                    <Trigger Property="ItemsControl.AlternationIndex" Value="0">
                        <Setter Property="Text" Value="First" TargetName="posText"/>
                    </Trigger>
                    <Trigger Property="ItemsControl.AlternationIndex" Value="1">
                        <Setter Property="Text" Value="Second" TargetName="posText"/>
                    </Trigger>
                    <Trigger Property="ItemsControl.AlternationIndex" Value="3">
                        <Setter Property="Text" Value="Third" TargetName="posText"/>
                    </Trigger>
                </DataTemplate.Triggers>
            </DataTemplate>
        </Window.Resources>

        <StackPanel>
            <TextBlock Text="{Binding Title}"/>
            <ItemsControl HorizontalAlignment="Stretch"
                          ItemsSource="{Binding SomeList}">
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <StackPanel Orientation="Vertical" />
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
            </ItemsControl>
        </StackPanel>
    </Window>

What I would like to display is something like:

    Pos: First
    Name: Bob
    Pos: Second
    Name: Jane
    etc.

It's pretty straight-forward to bind to the FirstName property of each item in the list, but I would also like bind to the *index* in the list. I know I can do this from inside an ItemsControl using ItemsControl.AlternationIndex, but how do I link to the AlternationIndex from within in DataTemplate?

Many TIA.