获取LongListSelector中的选定索引

时间:2013-12-22 16:24:32

标签: vb.net xaml windows-phone-8 longlistselector

我正在为WP8应用程序使用LongListSelector。我搜索了几个网站,但没有找到是否有办法知道用户在列表中录制的项目的索引。 如果有人有想法,那就太好了。 感谢

`

        <phone:LongListSelector x:Name="ListeNotes" Height="535" Width="426" HorizontalAlignment="Left" VerticalAlignment="Top" FontSize="36" Margin="54,0,0,0">

            <phone:LongListSelector.ItemTemplate>
                <DataTemplate>

                    <TextBlock Text="{Binding Titre}"/>

                </DataTemplate>

            </phone:LongListSelector.ItemTemplate>

        </phone:LongListSelector>

`

4 个答案:

答案 0 :(得分:1)

我会在code-beind或ViewModel中创建(取决于你使用的是什么),公共变量

Public Int32 itemSelectedIndex {get;set;} //This is a public variable, therefore add it inside your class

并将其绑定到SelectedIndex,如下所示:

<phone:LongListSelector x:Name="ListeNotes" Height="535" Width="426" HorizontalAlignment="Left" VerticalAlignment="Top" FontSize="36" Margin="54,0,0,0" SelectedIndex ="{Binding itemSelectedIndex, UpdateSourceTrigger = PropertyChanged}">

不要忘记在

后面的代码中添加datacontext引用
Public void MainWindow()
{
InitializeComponents();
this.DataContext = this;//this makes sure that you can bind public varibles to XAML
}

之后,您只需在代码中的任意位置引用itemSelectedIndex,它就会返回所选值(例如System.Windows.MessageBox.Show(itemSelectedIndex.ToString());

答案 1 :(得分:0)

在处理程序中:

SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles ListeNotes.SelectionChanged`

“发件人”是ListBox。因此,您只需将“发件人”投射到ListBox,并使用其SelectedIndex属性。

Dim listBox As ListBox = CType(sender, ListBox)
Dim tappedIndex = listBox.SelectedIndex

答案 2 :(得分:0)

你可以通过

获得
Dim num As Integer = (sender as LonglistSelector).Datasource.IndexOf((sender as LonglistSelector).SelectedItem)

答案 3 :(得分:0)

找不到解决方案...... 实际上我只是说用户不能有两个相同的Note对象,我在List(Of Note)中使用IndexOf方法来获取LongListSelector中SelectedItem的索引。