c# – Index Value Converter Optimisation

I’ve created an IValue Converter in order to Bind to the index value of a Collection.

However it seems to be rather slow/infefficient and I wonder if there is a better/different way to do this.

public class IndexValueConverter : IValueConverter
        {
            public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {
                try
                {
                    CollectionView collectionView = (CollectionView) parameter;
                    IList collection = (IList) collectionView.ItemsSource;
    
                    int convertedValue = collection.IndexOf(value) + 1;
                    return convertedValue;
                }
                catch (Exception e)
                {
                    Debug.WriteLine(e);
                    return -1;
                }
            }
    
            public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
            {
                throw new NotImplementedException();
            }
        }

XAML

        <CollectionView     
            x:Name="JobPins"
            ItemsSource="{Binding ACollectionView}">
            <CollectionView.ItemTemplate>
                <DataTemplate x:DataType="ADataModel">
                        <Label
                            BackgroundColor="Black"
                            Style="{StaticResource ListLabels}"
                            Text="{Binding ., 
                            Converter={StaticResource IndexConverter},
                            ConverterParameter={x:Reference Name=JobPins}}" 
                            TextColor="WhiteSmoke" />
                </DataTemplate>
            </CollectionView.ItemTemplate>
        </CollectionView>