Я искал решение для отображения индексов элементов из ListView в течение нескольких часов. Я не могу добавить новое свойство в источник данных как свойство индекса для привязки к значению.
Я пытался привязать к конвертеру:
<DataTemplate x:Key="TubeTemplate" x:DataType="data:Tube">
<local:TubeTemplate HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
FavoritesNumber="{Binding Converter={StaticResource IndexConverter}}"
Closed="TubeTemplate_Closed"></local:TubeTemplate>
</DataTemplate>
Это конвертер:
public sealed class IndexConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var item = (ListViewItem)value;
var listView = ItemsControl.ItemsControlFromItemContainer(item) as ListView;
int index = listView.IndexFromContainer(item) + 1;
return index.ToString();
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
Проблема в том, что мой код разрывается на: var item = (ListViewItem)value;
Значение, которое я получаю, это тип данных, связанный с каждым элементом, а не ListViewItem.
Что я делаю не так?