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

时间:2015-07-17 08:21:16

标签: c# wpf xaml code-behind

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

为此,我使用了以下内容:

<ListView GridViewColumnHeader.Click="HandleColumnHeaderClicked">

</ListView>

并在后面的代码中按如下方式处理click事件:

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类型上挂钩click事件(而不是任何其他ButtonBase控件)。

提前致谢。

1 个答案:

答案 0 :(得分:1)

使用Style TargetType中的EventSetter

相关问题