使用上下文菜单后获取选定的 ListView 项目

Get selected ListView item after using Context Menu

我正在使用包含我的 mp3 文件的 ListView 在 WPF 中编写一个简单的音乐播放器。 在 MouseDoubleClick 之后,我以这种方式获得选定的项目:

private void PlayNow(object sender, EventArgs e)
{
   var item = (sender as ListView).SelectedItem;
   if (item != null)
   {
       //Some code here
   }
}

但是当我通过上下文菜单执行相同操作时,我选择的项目是 ContextMenu.Item。 我仍然需要 ListView 所选项目。 如何通过 ContextMenu 获取它?

您可以使用 PlacementTarget 属性.

访问 ContextMenu 所属的项目

不过,如果您想以 "proper" 方式执行此操作,我可能建议您阅读 commands. You could bind both the double-click action and the ContextMenu's item to MediaCommands.Play,并通过将相应的项目绑定到 CommandParameter 来传递相应的项目。