我正在使用一个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。
有什么想法吗?
答案 0 :(得分:0)
我已经找到了答案。
NoteData data = (sender as MenuItem).DataContext as NoteData;
int selectedIndex = App.ViewModel.TypedNote.Items.IndexOf(data);
所以,我基本上要求我的MenuItem从LongListSelector的选定项目中获取信息,这是一个NoteData项目。然后,我得到了该项目的索引,给我选择的索引!