如何专门在 GridViewColumnHeader 上附加 Click 事件处理程序

How to attach a Click event handler specifically on a GridViewColumnHeader

我正在尝试在 GridViewColumnHeader 上附加点击事件:

为此我使用了以下内容:

<ListView GridViewColumnHeader.Click="HandleColumnHeaderClicked">

</ListView>

而点击事件在后面的代码中是这样处理的:

private void HandleColumnHeaderClicked(object sender, RoutedEventArgs e)
{
  if (e.OriginalSource is GridViewColumnHeader)
  {
     var column = ((GridViewColumnHeader)e.OriginalSource).Column;
     vm.SelectedColumnCommand.Execute(column.Header);
     e.Handled = true;
  }
}

一切似乎都很好,但是 GridViewColumnHeader.Click 实际上与 ButtonBase.Click 相同。这意味着我的列表视图中的任何 ButtonBase 控件都将触发此事件,并且我的列表视图可能有数以千计的此类控件。这似乎不是最佳做法。

我的问题是:如何专门挂钩 GridViewColumnHeader 类型的点击事件(而不是任何其他 ButtonBase 控件)。

提前致谢。

Style 中使用 EventSetterTargetType