c# - 单击 DataGridCell 时的 WPF 触发事件

标签 c# wpf datagrid

我希望在单击 WPF DataGrid 中的单元格时触发事件,我已经尝试过了

XAML

   <DataGridComboBoxColumn.ElementStyle>
      <Style TargetType="ComboBox">
         <EventSetter Event="GotFocus" Handler="b1SetColor"/>
      </Style>
   </DataGridComboBoxColumn.ElementStyle>

C#

  void b1SetColor(object sender, RoutedEventArgs e)
  {
     MessageBox.Show("Focused");
  }

但是当我单击 Combobox 单元格时没有任何反应(不触发)。有什么办法可以实现吗?

最佳答案

使用 DataGridCellStyle 并 Hook PreviewMouseDown 事件。

<DataGrid>
    <DataGrid.CellStyle>
        <Style TargetType="DataGridCell">
            <EventSetter Event="PreviewMouseDown" Handler="b1SetColor"/>
        </Style>
    </DataGrid.CellStyle>
</DataGrid>

关于c# - 单击 DataGridCell 时的 WPF 触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24433065/

相关文章:

c# - 如何在修改其副本时保持通用列表不变?

wpf - 我可以在集合更改事件上回滚集合更改吗?

c# - 计算数据网格上的行并将其添加为新列

wpf - 使用MVVM在WPF DataGrid中显示组合框的用户友好方法

apache-flex - 如何为选定行禁用 flex 数据网格中的选定列?

c# - Activator.CreateInstance - 如何创建具有参数化构造函数的类的实例

c# - MVVM 模式中的 Viewpager

c# - 如何使用 C# 的 OrientDB-NET.binary 驱动程序在 OrientDB 上创建数据库?

wpf - WPF 网格中子控件之间的间距

WPF:隔离存储文件路径太长