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); }