如何在数据网格中设置标题双击事件

时间:2014-03-03 16:57:27

标签: c# wpf events datagrid styles

是否可以在后面的代码中执行以下操作(在数据网格中设置标题双击事件)?如果是,怎么样?我搜索的任何内容都没有显示可以访问数据网格标题的样式!

<DataGrid ...> 
    <DataGrid.Resources>
        <Style TargetType="DataGridColumnHeader">
            <EventSetter Event="MouseDoubleClick" Handler="OnTableDoubleClick" />
        </Style>
    </DataGrid.Resources>
    ...

非常感谢。

修改

在其他尝试之后,我也在从DataGrid派生的CustomDataGrid类的构造函数中尝试了这个:

        Style _style = new Style(typeof(DataGridColumnHeader));
        _style.BasedOn = Application.Current.Resources["DataGridColumnHeaderStyle"] as Style;
        _style.Setters.Add(new EventSetter(MouseDoubleClickEvent, new MouseButtonEventHandler(OnTableDoubleClick)));
        this.ColumnHeaderStyle = _style;

如果我很清楚我做了什么,那么应该将双击事件添加到标题样式中,但实际上它什么都不做,这意味着在运行时不会调用处理程序。

1 个答案:

答案 0 :(得分:1)

您需要在DataGridRowHeader上声明样式:

    <DataGrid>
        <DataGrid.Resources>
            <Style TargetType="DataGridRowHeader">
                <EventSetter Event="MouseDoubleClick"
                             Handler="DataGridRow_MouseDoubleClick"/>
            </Style>
        </DataGrid.Resources>
    </DataGrid>

如果您正在谈论列标题。将DataGridRowHeader替换为DataGridColumnHeader