J'ai résolu le problème de cette façon :
J'ai créé une liste de convertisseurs à indexer :
public class IndexConverter : IMultiValueConverter
{
public object Convert(
object[] values, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
var xx= values[0] as xx;
var listxx= values[1] as List<xx>;
if (xx== null)
return null;
return (listxx.FindIndex(x => x == xx) + 1).ToString();
}
public object[] ConvertBack(
object value, Type[] targetTypes,
object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Dans la DataGrid, je lie la colonne avec MultiBinding :
<DataGridTextColumn Header="#" IsReadOnly="True">
<DataGridTextColumn.Binding>
<MultiBinding Converter="{StaticResource indexConverter}">
<Binding />
<Binding RelativeSource=
"{RelativeSource AncestorType={x:Type DataGrid}}"
Path="ItemsSource"></Binding>
</MultiBinding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>