如何修复DataGridCell PreviewMouseLeftButtonDown事件没有触发?

时间:2013-05-01 01:33:53

标签: c# wpf events wpfdatagrid

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

我的资源中有样式标记:

<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事件触发。任何想法为什么没有发生这种情况?

1 个答案:

答案 0 :(得分:0)

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

看看this blog post,看看如何做到这一点。 this answer解决了同一问题,向下滚动答案,查看使用自动生成列处理问题的不同选项。