【问题标题】:Get selected ListView item after using Context Menu使用上下文菜单后获取选定的 ListView 项目
【发布时间】:2020-06-15 17:51:54
【问题描述】:

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

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

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

【问题讨论】:

  • 查看 wpf 文档,ContextMenu 有一个 Parent 属性。
  • @Delous ContextMenu的父级是popup,没有父级。
  • 如何直接获取 ListView 的 SelectedItem,而不是通过 sender 对象?
  • @Tigran 设法通过在 MouseRightButtonUp 上调用的方法得到它

标签: c# wpf listview contextmenu selecteditem


【解决方案1】:

您可以使用PlacementTarget 属性访问ContextMenu 所属的项目。

不过,如果您想以“正确”的方式执行此操作,我可能会建议您阅读 commands。您可以将双击操作和ContextMenu 的项目都绑定到MediaCommands.Play,并将相应的项目通过绑定到CommandParameter 来传递。

【讨论】:

  • 使用 PlacementTarget 可以正常工作,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多