У меня есть длинный селектор спискаПолучить индекс выбранного элемента в longlistselector
<phone:LongListSelector x:Name="BTDevices" SelectionChanged="BTDevices_SelectionChanged_1">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=Name}" FontSize="30" />
</StackPanel>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
функция определена как:
private void BTDevices_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
{
//here i want to get the index of the selected item
}
Я попробовал следующую строку
int a = App.ViewModel.Items.IndexOf(sender as ItemViewModel);
Но он всегда возвращает -1.
Я следую за ваши комментарии, но проблема я столкнулся как. например У меня есть полная страница списка и есть только 3 элемента. теперь, когда я выбираю/нажимаю на пустую область, она дает -1. это нормально, но когда я выбираю какой-либо элемент. он дает мне индекс. это тоже прекрасно, но проблема заключается в выборе любого индекса, который я нажимаю на пустое место, но он дает последний выбранный индекс. –
вы должны иметь возможность получать только действительные индексы - это означает 0+. Я не знаю, как вам удалось получить -1. У вас есть только 3 предмета? Задайте вопрос и дайте мне ссылку. – VasileF
Чтобы решить проблему получения выбранного индекса даже при нажатии на пустое пространство, попробуйте установить для выбранного элемента значение null, как только вы закончите с ним –