通过上下文菜单获取LongListSelector的选定索引

时间:2014-02-12 14:02:56

标签: c# windows-phone-8

我正在使用一个LongListSelector,它附带了一个上下文菜单,作为XAML中ItemTemplate的一部分。我的一个上下文项是编辑选项。在该选项的单击事件中,我想获取正在编辑的项目的LongListSelector的索引(也就是所选项目),以便我以后可以使用它。但是,我在运行它时遇到了问题。我尝试了以下两件事:

LongListSelector selector = (sender as MenuItem).DataContext as LongListSelector; 
int selectedIndex = selector.ItemsSource.IndexOf(selector.SelectedItem);
MessageBox.Show(string.Format("{0}", selectedIndex)); //What's the index?

但是,这总是返回-1。

我也尝试过直接访问列表,而不是通过发件人,如下所示:

int selectedIndex = listTypedNotes.ItemsSource.IndexOf(listTypedNotes.SelectedItem);
MessageBox.Show(string.Format("{0}", selectedIndex)); //What's the index?

这也会返回-1。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我已经找到了答案。

 NoteData data = (sender as MenuItem).DataContext as NoteData;
 int selectedIndex = App.ViewModel.TypedNote.Items.IndexOf(data);

所以,我基本上要求我的MenuItem从LongListSelector的选定项目中获取信息,这是一个NoteData项目。然后,我得到了该项目的索引,给我选择的索引!