LongListSelector和ContextMenu返回错误的项目

我在页面中有这个LongListSelector

          . . . .    

这是EditVideo

 private void EditVideo(object sender, RoutedEventArgs e) { VideoItem selectedVideo = (sender as MenuItem).DataContext as VideoItem; if (video == null) { return; } //Do Stuff this.RelodeTableData(); } 

RelodeTableData

 private void RelodeTableData() { System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() => { searchResults.Clear(); for (int i = 0; i < historyRep.historyArray.Count; i++) { VideoItem item = historyRep.historyArray[i]; searchResults.Add(item); } }); } 

问题在于,当用户编辑项目并尝试编辑其他项目后,他将获得他在selectedVideo编辑的最后一项。

我编辑后使用ReloadTableData刷新列表数据。

好好经过大量搜索如何解决这个问题。 我想,如果我将Unload方法添加到ContextMenu ,这是明确的DataContext。

 private void ContextMenu_Unload(object sender, RoutedEventArgs e) { ContextMenu conmen = (sender as ContextMenu); conmen.ClearValue(FrameworkElement.DataContextProperty); }