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



我正在使用一个 LongListSelector,该 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。

有什么想法吗?

我已经找到了答案。

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

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

最新更新