I\'d like to be able to display an index value from within a DataTemplate, but I don\'t want the data to be persisted or backed by the model or viewmodel. In other
I would use a converter to do this.
The trick is giving it the source collection, either on the ConverterParameter
or a Dependency Property. At that point, conversion is as simple as using IndexOf
.
Here's a sample converter that does this:
public class ItemToIndexConverter : IValueConverter
{
public object Convert(...)
{
CollectionViewSource itemSource = parameter as CollectionViewSource;
IEnumerable
You can make the implementation strongly typed, return a formatted string as a number, etc. The basic pattern will be as above though.
This implementation uses the parameter approach, as making a DP is more messy in my view. Because you can't bind ConverterParameter
, I have it set to a static resource that is bound to the collection:
...