如何修复DataGridCell PreviewMouseLeftButtonDown事件不触发

本文关键字:事件 PreviewMouseLeftButtonDown 何修复 DataGridCell | 更新日期: 2023-09-27 18:11:31

我正在尝试实现本文中描述的单击复选框:http://wpf.codeplex.com/wikipage?title=Single-Click%20Editing

我有style标签在我的资源:

<Window.Resources>
    <Style TargetType="{x:Type DataGridCell}">
        <EventSetter Event="PreviewMouseLeftButtonDown" Handler="DataGridCell_PreviewMouseLeftButtonDown"></EventSetter>
    </Style>
</Window.Resources>

代码隐藏事件也从文章中逐字复制。我有一个DataGrid:

    <DataGrid x:Name="DataGridSelectMusic" Margin="170.55,236.139,38,66.723" AutoGenerateColumns="True" PreviewMouseLeftButtonUp="DataGridSelectMusic_PreviewMouseLeftButtonUp_1">
        <DataGrid.Background>
            <SolidColorBrush Color="#FFD4D0C8" Opacity="0.5"/>
        </DataGrid.Background>
    </DataGrid>

数据网格的数据绑定在代码后面。

问题是在这个DataGrid中点击一个DataGridCell并不会导致PreviewMouseLeftButtonDown事件触发。知道为什么没有发生吗?

如何修复DataGridCell PreviewMouseLeftButtonDown事件不触发

我认为问题是你已经把AutoGenerateColumns设置为true,所以它的行为有点不同。在这种情况下,我认为您需要处理AutoGeneratingColumnAutoGeneratedColumn事件,并手动连接处理程序。

看看这篇博客,看看如何做到这一点。这个答案解决了同样的问题,向下滚动答案以查看使用自动生成的列处理这个问题的不同选项。